by using maven Build projects and deploy it using jboss-maven-plugin - java

I have 2 (core, core-web) projects such a way that one is depending on another.
so the core-web's POM.xml contains the dependency of core.
core-web will be deployed on jBoss AS (5.1). Therefore want to use jboss-maven-plugin
I have to run install on both core and core-web after every change and have to deploy the file manually. Everything is seems to be working fine if I put the war file to the deploy.
Just want to ask that if there is a way that I can make a routine in core-web's POM that it automatically generates core.jar and core-web.war and deploy it to the running jboss server on localhost:8080 port.
Please let me know if there is more information you require.
Thanks in advance.

I think I have found the issue. I made another pom.xml and and added core and core-web in the module tag and now I have to install this new pom and it installs all the dependent poms in a sequential way.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>build-all</artifactId>
<packaging>pom</packaging>
<name>build-all</name>
<parent>
.......
</parent>
<modules>
<module>..</module>
<module>../core</module>
<module>../model</module>
<module>../cas-server</module>
<module>../core-web</module>
<module>../other-projects</module>
</modules>
</project>

Related

Seems that methods of maven repository can not be called from end-product

I am setting up a Craftbukkit Server with the editor IntelliJ and the programming language Java. For that I use firebase-admin. I want use it trough maven and everything works. But when I build the .jar and then let it run it returns following error in the console:
java.lang.NoClassDefFoundError: com/google/firebase/FirebaseOptions$Builder
at raycroud.mckaff_server_manager.ServerManager.onEnable(ServerManager.java:26) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:254) ~[craftbukkit-1.13.2.jar:git-Bukkit-a4c555b]
I am sitting at this problem for many days and tried many different solutions, but nothing worked.
Here you can see my project structure:
And here my Artifacts Settings under File->Project Structure->Artifacts:
Here is my pom.xml file:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>company.lol_server_manager</groupId>
<artifactId>server_manager</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>6.6.0</version>
</dependency>
</dependencies>
</project>
Actual the Craftbukkit plugin gets disabled but I normally I expect that he works and I don't know why he can find methods or other elements from maven libraries.
There could be several reasons.It would help if you provide your run/debug configuration.You could try the following:
Activate [Include in project build].
Let me know if it helps.

Maven failed to execute goal (Could not resolve dependencies)

I haven't worked with Java in many years as I primarily work with PHP (Using Composer for dependency management). I've only just started looking at Maven and Gradle too.
I'm trying to have a play around using Maven and wanted to use Eclipse's JDT UI tools so I could have a go at a test project building a user interface using some of their components, just to try and bring myself up to speed.
I'm using Maven to try and bring in the JDT UI package as a dependency. This is my pom.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.jonathon</groupId>
<artifactId>ui-test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.core</artifactId>
<version>3.12.2</version>
</dependency>
<dependency>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.ui</artifactId>
<version>3.12.2</version>
</dependency>
</dependencies>
</project>
I'm using IntelliJ IDEA as my IDE and it seems to be complaining in a tooltip about not being able to resolve dependencies. I tried running mvn compile to see if I could get a better error message and I got this:
[ERROR] Failed to execute goal on project ui+test: Could not resolve dependencies for project com.jonathon:ui-test:jar:1.0-SNAPSHOT: Failed to collect dependencies at org.eclipse.jdt:org.eclipse.jdt.ui:jar:3.12.2 -> org.eclipse.platform:org.eclipse.search:jar:3.11.1 -> org.eclipse.platform:org.eclipse.ui:jar:3.108.1 -> org.eclipse.platform:org.eclipse.swt:jar:3.105.2 -> org.eclipse.platform:org.eclipse.swt.gtk.linux.aarch64:jar:[3.105.2,3.105.2]: No versions available for org.eclipse.platform:org.eclipse.swt.gtk.linux.aarch64:jar:[3.105.2,3.105.2] within specified range -> [Help 1]
Am I doing something wrong? I got the artifactId, groupId and version from here.
This library is the problem org.eclipse.platform:org.eclipse.swt.gtk.linux.aarch64:jar it doesn't exist at all.
gtk.linux.aarch64 this part is resolved from your setup or java/system
propably you need to set osgi.platform=gtk.linux.x86_64 in your mvn pom or env .

Maven project giving error

After setting up the project in intellij as a maven project like so ..
I set up my pom.xml file with a basic structure ...
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.yourcompany.test</groupId>
<artifactId>jreddit-testing</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>jreddit-testing</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.github.jreddit</groupId>
<artifactId>jreddit</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
when I run sudo mvn clean install it installs everything with no errors.
On running the project I get the Error ..
Error:java: directory not found:
/Users/stingRay/Documents/workspace/jreddit/target/generated-sources/annotations
Not sure if this will solve your issue but the comments have not enough space :)
I would argue the environment variables are simply not properly configured. I recommend not using sudo and maven. It is simply not necessary if everything is configured properly.
The download page of maven contains the instructions what to do: http://maven.apache.org/download.cgi (scrolling down)
In short:
Download the Java Development Kit (I don't use the packet manager from Linux for this, to prevent having root being able to execute Java commands or run servers accidentally). It looks you are working on MacOS? So Download the dmg file from oracle.
Download the Maven archive and extract it (it can also be in a shared dirctory so it is readable for every user on the system)
the important part: setting the environment variables. You must set JAVA_HOME, M2_HOME, optionally MVN_OPTS and the PATH for convenience - so "mvn" runs in your terminal without sudo.
There are tutorials on the web that guide you through this, like this one: http://bitbybitblog.com/environment-variables-mac/
If you work with IntelliJ or the terminal the .bash_profile file be enough. Editing the .plist file is for OSX internal tools only. In IntelliJ it will work once the M2_HOME variable is set (if I remember correctly) and IntelliJ is restarted.
Note you may need to clean up the files already around (to make sure your user can write them without sudo). Meaning:
/Users/stingRay/Documents/workspace/jreddit/target/
/Users/stingRay/.m2/repository (or where your local maven repo is located)
Hope that will work :)

cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins

I have the links of people who have the same error but it seems they are trying to import a project. I deleted and reinstalled the spring plug in via the Eclipse Marketplace as recommended but that does't work.
I create a maven project then click finish and none of the src files populate. Right away the pom.xml file shows the dreadful red X. Once I click it to see what is going on "cannot read lifecycle mapping metadata for artifact org.apache.maven.plugins" is displayed.
I am using Apache 8, Java SDK 8 and here is my pom.xml file:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.learnprograming</groupId>
<artifactId>spring-helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>
I have done this same process on my other computer and I was able to create a spring program. I get on my macbook and I get nothing but issues!
Make sure you have installed the nexus. I have experienced this problem because Set this attribute in settings.xml. Removing it will resolve this problem. I hope it will help you!
<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>
</mirrors>

Eclipse NoSuchMethod exception; configuring build path

I have a maven project which actually builds as multiple java projects. Project B contains a class which is a child of a class sin Project A. When I try to run this class in a debugger I get a NoSuchMethod error when the method tries to call any functionality from it's parent.
The Maven setup is designed to compile every single project and place it in the maven repository so other projects can find them (it has a sense of dependency so it builds pre-req projects firsts). This is all good for deployment, but I don't want to force people debugging in eclipse to do a maven install every time the start up their debugger. Instead I tried adding pre-req projects to the class path of the applicable projects (build path -> add class folder). This doesn't work. I think it's due to having both the maven repository and the class path in my build path? but the class folders should be parsed forced and the newer class folders should be parsed before the maven install right?
How can I configure this to work without needing to re-do a maven install each time?
What exactly do your pom files look like? I often use a setup where I have one parent Maven project that is comprised of other Maven sub projects.
I will have a parent pom that looks something like this:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<groupId>put group id here</groupId>
<artifactId>name of artifact id</artifactId>
<version>0.2.0-SNAPSHOT</version>
<packaging>pom</packaging>
<modules>
<module>example-subproject-1</module>
<module>example-subproject-2</module>
</modules>
</project>
I'll then have pom files in the subprojects that look like this (assume this is the pom file for subproject 1):
<?xml version="1.0"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<parent>
<artifactId>artifact id of parent pom</artifactId>
<groupId>group id of parent pom</groupId>
<version>version number of parent pom</version>
</parent>
<groupId>group id</groupId>
<artifactId>artifact id</artifactId>
<packaging>packaging</packaging>
<version>1</version>
<name>put name here</name>
<dependencies>
<dependency>
<groupId>group id of example subproject 2</groupId>
<artifactId>example-subproject-2</artifactId>
<version>version number of example subproject 2</version>
</dependency>
</dependencies>
</project>
When I have things set up this way, I can compile the entire project if I'm in the root directory. If I just want to compile a specific directory, I just change into that directory. Make sure to include any needed subprojects in your dependencies section.
Make sure you have the m2eclipse plugin installed.
http://eclipse.org/m2e/download/
Also, install the m2eclipse-wtp plugin
http://marketplace.eclipse.org/content/maven-integration-eclipse-wtp#.UUdUhBxwrIU
Make sure you have created your projects as 'Maven' projects. So, if you look at your 'ProjectA->Properties->Builders', you should see a 'Maven Project Builder'.
If you follow all above steps, your project dependencies should resolve correctly and you should not have errors.
If you still have errors, pls post your eclipse project structure.

Categories

Resources