I am trying to create a script that can clean build a project I am working on in Eclipse.
The issue is with the command to run a clean build using Eclipse headless. This is the command I am using:
Eclipse.app/Contents/MacOS/eclipse --launcher.suppressErrors -nosplash -data "~/git/SwingJS" -application org.eclipse.cdt.managedbuilder.core.headlessbuild -cleanBuild
This is essentially the structure of the command listed here GNU ARM Eclipse (Looking at the main docs page of Eclipse is unhelpful as well).
The specific error message I am getting is as following:
org.eclipse.logback.configuration: The org.eclipse.m2e.logback.configuration bundle was activated before the state location was initialized. Will try after the state location is initialized.
org.eclipse.m2e.logback.configuration: Logback config file: /Users/andrewlee/git/SwingJS/.metadata/.plugins/org.eclipse.m2e.logback.configuration/logback.1.7.0.20160603-1933.xml
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [bundleresource://954.fwk1087712231:1/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [bundleresource://954.fwk1087712231:2/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html for an explanation.SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]org.eclipse.m2e.logback.configuration: Initializing logbackWARNING: No Project matched "swingjs". Skipping...
Now the paths I have in the command are correct as far as I know.
Project directory is not in .../workspace/SwingJS since I imported the project from Git using the Eclipse Git tool, and in that case, it keeps the project in $HOME/git/Project by default.
Furthermore, the Project name should be "swingjs", yet in the log, it says "WARNING: No Project matched "swingjs". Skipping..."
I would appreciate if someone who has actually successfully done this before gave me the specific commands they used to clean build an Eclipse project headlessly.
Thanks.
Related
It seems that the property ${user.dir} is recognized by Maven but not recognized by Eclipse. I am seeing the errors below in the pom.xml file in eclipse everywhere then there is a reference to this section:
<outputDirectory>${user.dir}\Nightly_Build\lib</outputDirectory>
The errors are:
Cannot invoke "org.eclipse.core.runtime.IPath.segmentCount()" because "outputDir" is null (org.apache.maven.plugins:maven-jar-plugin:2.4:jar:bpcstudioToats:package)
java.lang.NullPointerException: Cannot invoke "org.eclipse.core.runtime.IPath.segmentCount()" because "outputDir" is null
The good thing is that the command mvn clean install is working fine. I run this command from eclipse right-click run/build and from the command line, and all is working fine.
This is causing eclipse not to recognize the maven dependencies correctly, and reporting compilation errors in various places, and the compilation in maven is successful.
Any idea how to resolve this issue?
Update:
I replaced all references to user.dir with project.basedir in all pom.xml, did a project clean, and updated maven, then all errors disappeared. But, I could see a new folder was created under each project base directory. I will check what was the intent of using user.dir and then will provide an update.
I have been unable to get Jrebel to run. I am running a Hippo Java project on mac with the Eclipse plugin. I run the project using mvn from a command line (not through the eclipse IDE). I have followed these instructions for Hippo and JRebel
I have located the JRebel Eclipse plugin files here:
/Applications/Eclipse.app/Contents/Eclipse/plugins
From here I copied the contents of
org.zeroturnaround.eclipse.embedder_6.5.0.RELEASE/jrebel/
which contains 2 files: jrebel.jar and jrebel.plugininfo
I put these copies into a created directory ~/Tools/jrebel and pointed the environment variable REBEL_HOME to it.
export REBEL_HOME=~/Tools/jrebel
When I echo $REBEL_HOME I get the correct path. When I cd to that path and ls I get the 2 files.
In my hippo project, from the command line I run
mvn clean verify -Djrebel
I get build success. Then I run
mvn -Pcargo.run -Djrebel
This gives the error:
[INFO] [talledLocalContainer] Error opening zip file or JAR manifest missing : ${env.REBEL_HOME}/jrebel.jar
[INFO] [talledLocalContainer] Error occurred during initialization of VM
[INFO] [talledLocalContainer] agent library failed to init: instrument
I have read here to specify the path of jrebel.jar to -javaagent , but I don't know what this means or how to do it?
Hippo has built in JRebel configurations in the pom.xml. These should be activated with the -Djrebel flag. Why isn't this working?
The error shows that in that process REBEL_HOME isn't defined. I don't see anything wrong with what you did here so there may be some peculiarity to your local setup or to MacOS (I'm not a mac user). In any case your environment variable is not being passed to the process.
Everything you said works for me on Linux (Mint).
You can try setting the property in the cargo profile.
Or you could set the variable in your global environment.
In a given project that is driven by sbt there is some kind of corruption in the project libraries specifically for a MavenLocal repository used for kafka-spark-9.7.2.jar in which:
references to the classes provided by that jar are marked as "symbol not found" by the editor parser
however the editor (strangely) does offer to import the classes
but after accepting the import, the symbols are still marked in red as unresolved.
The following attempts to "clean things up" have already been performed:
Build | Make Project
Build | Rebuild Project
In addition I have verified that the project does build from
sbt package
on the command line
UPDATE After re-running sbt gen-idea the librraries are still not found by the Parser. yet the libraries exist -even IJ knows about them as shown in the following screenshot. Why is it that IJ can find the library
C:\Users\S80035683\.ivy2\cache\org.apache.kafka\kafka\jars\kafka-0.7.2-spark.jar!\kafka\api\FetchRequest.class
However IJ is unable to resolve any classes from that library in the Parser?
You have to build the project for Intellij, try to do this in your project root:
sbt idea with-sources=yes
This should build the project structure from scratch and add the right dependencies, usually I refresh the project after adding a dependency or a jar.
Edit:
To use the command you need this plugin, otherwise you can use gen-idea but I used it only a few times and I'm not sure how it will work out.
Edit2:
There was some confusion, first, for the IDEA SBT console you don't need to prepend the sbt command since you already are inside sbt:
If you have the sbt plugin for idea you can use gen-idea with-source=yes (without prepending sbt)
From the terminal, either you go to your project root and type sbt to enter the sbt console and use gen-idea or idea with-sources=yes (without prepending sbt)
or directly sbt gen-idea or if you have the plugin sbt idea with-sources=yes (prepending sbt)
To reach the sbt console inside idea you need to install the sbt plugin on preferences -> plugin and search for sbt and then View -> Tool Windows -> SBT Console:
To start the console click on the play button, to kill the console on the skull.
I had the same problem. I fixed it by directly writing the CLASSES and SOURCES of the problematic library. This can be found in .idea/libraries/SBT__<problematic library>_jar.xml
The location to my project is C:\Users\ess\workspace\myproject1. I tried to generate the wsdl file via the mvn command but this error appeared
The goal you specified requires a project to execute but there no pom in this directory c:\users\ess
and Maven home is c:\program files\apache-maven-3.1.0
Any idea?
You need to change to the directory where your pom.xml sits:
cd C:\Users\ess\workspace\myproject1
Make sure your pom.xml is located inside myproject1
Now run the maven command.
If still the error comes, please share your complete maven output.
the location where you are trying to execute the command is not the root directory of the maven project. Check whether at this location C:\Users\ess you have pom.xml, i don't think you have.
Now go to this location C:\Users\ess\workspace\myproject1 and try to run the same command again.
I'm having this exception with some stubs generateds by Axis2:
"The type org.apache.axiom.om.OMElement cannot be resolved. It is
indirectly referenced from required .class files"
I've been reading many posts, and trying to find a solution. What I've found so far is to add the apache tomcat 5.5 library to the build path. It removed the error in the java file, but then, when I to execute any java program inside the project, I got this error:
'Launching myApp' has encountered a problem Exception occurred
executing command line. Cannot run program "C:\Program
Files\Java\jdk1.5.0_22\bin\javaw.exe" (in directory
"D:\Digicel\workspace\Digicel\myClassSample"): CreateProcess error=87,
The parameter is incorrect
then if I remove the apache tomcat library from the build path, I can run the other java programs, but not the one mentioned initially.
Any thoughts about it?
Okay, I've found the cause of the problem with the help of a friend :)
The thing is that Eclipse is aware that one of my dependencies, depends of another library, and Eclipse is checking for it when it tries to build the code.
So, what I've done is try to check which jar file contains this library: " org.apache.axiom.om.OMElement".
I've googled it and found that it is "axiom-api-1.2.10.jar" and finally my file compiled with 0 errors.
He also explained to me that my original solution of adding the apache tomcat server library is adding all the jars that cames with apache tomcat (which is a big list), and probably there may have been a version conflict with my current list of added jars.
So, the fix was to find the appropriate jar and add it to the project.
This error can also occur when a indirect dependency has a corrupt jar file. This may be caused by problems at the public maven repository.
If this is the case removing the local maven repository to download fresh jar files will fix your problem:
rm -Rf ~/.m2/repository/{enter/path/to/broken/stuff}
Goto Maven >Update Maven project>checkmark the Force update >Then Run
..That error Will gone....