Cleaning Projects and Servers to see my changes working - java

Let me explain..
I used to program all day just cleaning projects(Project > Clean) and JBoss server(Right click on it > Clean) sometimes.
Something around 10 times in a day of 8 hours working.
Now I need to do it all the time, otherwise it won't get my code updated.
Is there something that I can do to avoid doing it all the time?
Is it even possible?

You can use 'ant' script to clean and build and link it with Eclipse as Builder.
First create a ant script with a target which will do the clean build.
Now go to Eclipse and right click the project and select 'Properties' and select 'Builders'. Click 'Add' button and select 'Ant Builder'. In the shown dialog , point to the ant file you created. Select 'Targets' and select the targets which you want to run.

Run your server in debug mode, so that it has hot-swap enabled. Then make sure you send each changed file to the server. This can be done either via WebToolsPlatform or using the FileSync plugin. If using ant, this looks interesting
A paid option to increase creativity is JRebel. I haven't used it, and the advice I pointed out above are sufficient for me, but take a look at it as well.
Btw, avoid doing clean that often. It is a slow process.

Related

Skip maven test phase on local

I want to skip tests before installing my java project just on my local since it's taking too much time. It should keep on working on buildserver.
I know that it can be done on command line but I'm using Intellij and when I click on "Install", I don't want it to run tests.
How can I achieve this?
Just click on this button before running the install:
The button might look different or be somewhere else on a different Intellij version. In this case, you can do the following:
Press 2x SHIFT to open the Search Everywhere window and search for Toggle 'Skip Tests' Mode.

MyEclipse and build.xml/JRE misconfiguration

Every time I need to redeploy a project in particular, I get the following error:
The workaround I found is right clicking on the build.xml file of the project > Run As... > External Tools Configuration > JRE tab, and then change the runtime JRE (it doesn't seem to matter which I choose as long as I change it).
The problem is that I have to repeat this process every time I make a major change in the code of the project and redeploy it, otherwise I get the error shown in the screenshot.
I'm familiar with Eclipse#Linux but I have to use MyEclipse#Windows and a lot of things are new to me.
Any help will be appreciated.

IntelliJ IDEA doesn't redeploy changes

I have a Spring Web application and when I debug with IDEA's debbuger in Tomcat and redeploy the project after some changes, the changes are not deployed and debugger "sees" the old code (stepping through wrong or empty lines). Only thing that helps is to run maven clean install and then start the Tomcat again.
I tried clearing IDEA caches but it didn't help.
Hotswap also doesn't work, although I have correct options selected in settings, but I can live with that.
Note that I use redeploy not hotswap, so the whole application is started again, it should reload all classes but it doesn't. Only after maven build it works.
Note 2: I think it work ok one month ago, but no changes I can think of could do this (project- or IDEA-wise)
EDIT: So hotswap is now working OK (magically, I didn't do anything). But when I make larger modifications (eg. method signature change, etc), they are not picked up during REDEPLOY to the server. So I neeed to run maven clean install and start the server again to see the changes and for hotswap to work properly after method body modifications on this new code. Any idea why?
You need to check your run configurations of tomcat, in "Before launch" there should be Make and Build artifact steps, also be sure that all you changed classes are really compiling during redeploy - this is the place I would start from.
Also I don't get why you use redeploy instead of hot-swap? Redeploy is usually same time-consuming as restart server, but hot-swap is nearly instant. Though it allows only to change method bodies and constants, usually it's much prefferable then redeploy in development. Personally I'm using JRebel which is free for non-commercial projects now and restart server very rare.
EDIT:
I don't know why your classes are old even after redeploy, but the reason is 99% that they do not compile after changes into exploded folder. Doing maven clean install after each code change is too much (IDE compilation should be enough).
What I can suggest you is not to redeploy but to restart server after big changes. So that IDE perform Make, Build artifact and Deploy artifact tasks.
In addition to david.lucky hints, make sure that on your Tomcat configuration in the deployment section you're using an exploded artifact
I had exactly the same problem! I've spent hours in solving this issue.
I don't know why, but the solution for me was that (I'm working on MacOS High Sierra):
First, I had some of my tutorial projects, I was working on, on my Desktop in a folder /Desktop/tutorial/... These project were working fine. I could redeploy and Tomcat was recognizing the changes in my java files.
Then I started some new, own projects, and I placed them in my home directory, something like /Users/myHomeDirectory/WebApps/.
I could build and run these objects, but when I made changes, I had the same exact problem, that Tomcat was not recognizing the result. Only thing that helped out, when I clicked Maven-Button "Reimport all Maven Projects".
I tried really lots of different things. Nothing worked.
Then I thought, maybe, theres something wrong with my project. So I took one of my projects from Desktop and copied them into my home directory. But suddenly, I had again the same problem.
So here's my solution: I created a new project on Desktop again. And I don't know why, but now it's working fine. I really have no clue why. And believe me, I did not change any settings. I did exactly the same!
And regarding the life reload without redeploying. This works really fine for me (without any plugins like JREbel):
Go Run –> Edit Configurations –> “Deployment” tab, clicks + icon –> select an “exploded artifact”
Select “Server” tab, update the following options :
On ‘Update’ action -> Update classes and resources
On frame deactivation -> Update classes and resources
Run web application in Debug mode. Try to modify some codes or resources (Java files, ...), the modified classes and resources will be reloaded automatically.
This has been happening me for some time now Ultimate Edition after switching from eclipse to Intellij a few months ago.
Standard tomcat config and debug settings mentioned above used.
Intellij will show green popup after nothing to reload or reloaded one class.
Yet the debuggers bytecode is not the same reloaded/updated code.
You can force a recompile which will work for small changes ctr shift F9.
Other than that a clean install seems to work for annotation, method definition changes etc. If you try a recompile the debugger will fail the server.
So the answer is ctrl shift F9 on the file you change

Stanford CS106a: some java applet errors that do not allow to run the programs

Wasnt able to solve the problems in this screen.
http://s8.postimage.org/n5osf76ed/qestions.jpg
All the code worked a month ago.
What have I changed: I have a different version of eclipse (now: Eclipse IDE for Java Developers 1.5.1.20120920-0737, don't know what the previous one was).
Messed with environment variable. Since this does not effect the ot
Please help.
Try this solution mentioned in this discussion.
I just ran into this problem using standard (not Stanford) Eclipse.
By now this is probably moot for you, but I'll post my solution for
future travelers.
The launch configurations for Assignment 1 default to Applet, so the
containing Karel application isn't launched. To solve this, create
and use new Application launch configurations for each file.
If you already tried to run some of the files, delete the Applet
configs created so you can reuse the names:
Open the project properties (e.g. right click on Assignment 1 and select Properties).
Select Run/Debug Configurations.
Select and Delete each configuration.
Click OK.
May the Force be with you.
Create Application configs:
Right click on java file (e.g. CollectNewspaperKarel.java) and select Run As > Run Configurations...
Select Java Application in the left pane.
Click New Launch Configuration (the icon of a document with a +).
Type a name for the configuration and set its Main class to the associated file (e.g. CollectNewspaperKarel).
Click Apply then Run. (This should run correctly and create a useful entry in the Run History.)
Eclipse will still try to default to Applet, so you will henceforth
need to launch these configurations from the Run History (either from
the Run menu or the pull down on the run button). If you accidentally
launch as default, it will add a useless Applet configuration to the
Run History (e.g. CollectNewspaperKarel (1) ). You can delete this
from the Run Configurations dialog to keep the Run History tidy.
The eclipse used in CS106A is customized for stanford and for "karel the robot" :)
Just download and install it again and things should work just fine.

Eclipse: "Update SVN cache" hangs and locks up

Every time I start eclipse, the program begins doing this "Update SVN cache" thing but it will sit at 0% forever. I cannot perform any operations (such as checking out my projects, building them, or even running them) until this operation is completed (which never happens). Also, whenever I try to type anything in the editor, the whole program freezes and I have to kill the process.
I have been searching google for the answer to this problem for days and have yet to come up with an answer. Has anyone else had a similar problem and found a solution?
I'd like to add that I've tried re installing eclipse, all its plugins, and the jdk from scratch. Nothing seems to be working.
I faced the same issue and I tried to get out of this by disable most of performance setting for SVN in Eclipse:
Windows > Preferences > Team > SVN > Performance
OR (for latest versions): Windows > Preferences > Version Control (Team) > SVN > Performance
Disable: Computing deep outgoing state, Cache, persistent SSH
I just ran into this issue and was able to rescue it. This was with Zend Studio 10.5 which sits on Juno. I have about five projects in my workspace, one of which was open. I couldn't close the project because it was waiting for "Update SVN Cache" to complete.
With Eclipse closed, I went to my open project and via the command line ran "svn cleanup."
In workspace/.metadata/.plugins/org.eclipse.team.svn.core, I had a bunch of temp directories. I created a backup tarball, and then blew them all away.
That didn't fix anything. Finally I tried this:
With Eclipse closed, I went to my project directory and renamed .project to project.xml.
Reopened Eclipse, projects were closed. No SVN Update messages.
Restarted Eclipse.
Opened the project, but Eclipse balked at the missing .project file.
Closed Eclipse.
Went to my project directory and renamed project.xml back to .project.
Restarted Eclipse.
Opened the project. Smooth sailing. Was just able to commit a change without incident.
So far my workspace/.metadata/.plugins/org.eclipse.team.svn.core directory is still empty.
I don't know if the first two things I tried helped out at all, or if just renaming the .project file to force-close the project was all it took. Next time it happens (and there will be a next time) I'll try just force-closing the project and report back.
In my case I realized that a tortoise SVN explorer related windows was somewhere open. It probably locked the cache and eclipse was waiting for the unlock.
Not a direct answer to the question, but this might help for somebody making a similar mistake.
You're not the only one (see this bug report or this forum thread) but it's probably not a bug in Eclipse itself. Next steps:
Get a thread dump to see whether this is a deadlock or a thread is waiting for something that never happens (in the bug report, it hangs in System.loadLibrary()). You can use jconsole for this, it comes with the SDK.
Check all open projects in your workspace (that use SVN) with another SVN tool (command line svn or TurtoiseSVN if you're on windows) to make sure the data structures aren't corrupt.
Get the latest version of Eclipse and/or the SVN plugin
Try a different connector. Some people fare better with the JNI solution javahl, others with the pure-Java SVNKit.
Windows > Preferences > Team > SVN > Performance
Disable: Computing deep outgoing state, Cache, persistent SSH
Go to Preference -> General
Enable : Always run in background
Enable : Show heap status
Workbench Save interval (in minutes):9999
This will show your memory usage in eclipse.
Then edit your eclipse.ini file and change Xms and Xmx values to these:
-launcher.XXMaxPermSize 512m
-Xms1024m
-Xmx1024m
I faced this problem when having the same project in the workspace twice. Make sure you have only one copy of it in the workspace, maybe it helps.
It could be eclipse memory issue. I had similar problem until I did these steps:
Go to Preference -> General and put these values:
This will show your memory usage in eclipse.
Then edit your eclipse.ini file and change Xms and Xmx values to these:
-Xms1024m
-Xmx1024m
Look at the memory status. Hope it will help.
I was also facing similar issue and I got it resolved this by unchecking "Compute deep outgoing state for folders" under Windows->Preferences->Team->SVN->Label Decorations
This topic helped me for solving the problem about my eclipse svn update block.
I am using eclipse mars where this case came.
First I have deleted two projects which I don't needed - to reduce the project number in the workspace.
Changing parameter in eclipse.ini has not helped too.
I had the -clean argument on my eclipse set so I have deleted that too in hope it will work better. It helped a bit so the eclispe was running much longer but not much more. rockfarkas hint here.
What really helped at the end was to mark very fast all projects CtrlA from the project view and close them via the context menu while the SVN cache was still running. The half of them did that the others couldn't but after that I could see that the SVN cache was changing its state and so I could work again. The next step was to close the rest of the projects and open one by one. To this idea I came reading the post of user3096856.
I solved doing this:
-Select the project (or all projects) on your workspace (in eclipse), right click, select from the menu Team > Cleanup
I found an index error in eclipse which blocking the svn. Another project resources and svn repo were in .metadata\.plugins\org.eclipse.core.resources\.projects\ProjectName\4.tree
and other resources.
svn cleanup with the previous answer with 'Team > SVN > Performance' doesn't solve my problem.
'eclipse.exe -clean' will make eclipse unresponsible with 100% cpu.
The only solution was after exit eclipse the manual deleting of org.eclipse.core.resources\.projects\* files.
In my case, for 30 odd minutes it showed just 0 percent completed. I patiently waited since I tried restarting eclipse/machine still was getting the same thing. After 30 minutes, it continued with my svn update operation and completed it successfully.
Patience at times, helps :)
If there is duplicate project from SVN.
Force close eclipse.
Delete the duplicate project from filespace. (Eg: C:\Users\XXX\Workspace\DuplicateProject)
Restarting the eclipse
fixed.
I used Subversive - SVN Team Provider 3.0.0 with SVNKit 1.8.10 as SVN Connctor.
I updated the SVN Connctor to the latest version 1.8.11,and fixed it.
Do you use Maven SCM connector ? Try uninstalling it if you dont need it.
SCM connector is required for Maven SCM checkout, I do not use Maven SCM project checkout, instead I use SubEclipse checkout and convert project to maven using import existing project or convert to Maven project option from the context menu in Eclipse.

Categories

Resources