creating jar with exploded war component in maven - java

I have a pom.xml which currently generate war file. I want to create a JAR and the jar which i am creating should have the two directories, one is war in the exploded form and another is some config folder.
My new jar should have below structure.
application.jar
|__application_war_directory
|__config folder
I am new to maven. Can you please anyone help me

Related

Ant build.xml ear generation

I have a j2ee application. That application is packaged as ear file. Inside that ear file there are two wars. Can anyone guide me that how I create an ear file consisting those war's inside that ear with ant build.xml script.
You can use command line to create EAR using below command:
jar -cvf <<ear file name>> <<war files to be included>>
You can also refer to question how to create ear file, and include war and jar files inside that.
Also, if you want to do it using build.xml, you can refer How do I create an EAR file with an ant build including certain files?
I hope it helps.

Maven: Dynamic Web Project's WAR is not including a folder that was created manually in WebContent/WEB-INF

I have written a REST-API using JAX-RS. For that I have created a Dynamic Web Project in Eclipse, and than converted it into a Maven project.
I want my logger folder to be WEB-INF/logs/loggerFile.out.
So I created a folder in my WebContent/WEB-INF/logs.
But now when I am packaging it in a WAR, the logs folder is missing in the packages WAR as as in the target/MyProj/WEB-INF..there is no log folder there as well.
I tried creating the folder inside target/MyProj/WEB-INF manually, but still its not available in the WAR file.
(I am viewing the content inside the WAR file using 7-zip).
I am doing all this on my Windows-7.
Please help

how to create ear file, and include war and jar files inside that

I am trying to create an EAR file from the command prompt. I have used
jar -cvf myServletWAR.ear .
But my question is, how can I get this EAR file to have WAR files and JAR files inside it?
Do I need to create the war file separately and include in the ear file?
I can't use the ANT file for this, as there are few restrictions on this project.
One of my EAR files has structure as follows:
app.ear
- APP-INF
- lib
// libraries (.jar) here
- META-INF
- MANIFEST.MF
- weblogic-application.xml
- module1.war
- customlib.jar
This archive is being deployed onto WebLogic 10.3.
Remeber .ear is just a ZIP file, so you can always create it this way, although it seems messy.
check if jar cmd is working if so, create the jar of your class files and descriptors etc.
After that jar -cvf <<earname>> <<files want to be in the ear >>
Could you try this :
jar -xvf myServletWAR.ear
You could also refer to :
How to add a WAR file into an existent EAR file? and how to I have two .war files within one .ear file?
You would have to add these EAR file references in the application.xml of the ear file.
If you have generated a client and EJB together, they are automatically packaged into an enterprise archive file (.ear) and you do not need to do this. Otherwise:
Package the EJB's .jar file into an .ear for your application. To do
this use a jar command similar to the following:
jar -cvf myApplication .ear myService.jar
If you have a client .war file you can add that to the .ear file in the same way.
Create a deployment descriptor application.xml either using your
application server's tools or by copying and editing a sample, as
follows:
Locate a sample .ear, which is in examples directory in
mapdemo/mapdemo/repos/myService.deploy/JMapServ-WL.ear
Extract the descriptor application.xml from the .ear file, using the following jar command:
jar -xvf JMapServ-WL.ear META-INF/application.xml
Make a copy of the application.xml descriptor and edit it, replacing JMapServ with the name of your .jar file. You can also add the name of your .war file if you added that to the .ear file.
Put the descriptor in the meta-inf subdirectory of the directory containing your .ear file.
Package the descriptor into your .ear file using a jar command similar to:
jar -uvf myService.ear META-INF/application.xml
If you want to create an ear from the command line, following are the options that you can try.
Option 1. Using an ant build and use the ear task. Configure this ear task as stated in stackoverflow question on ant ear task usage
Note: Maven based build is preferred over ant these days.
Option 2. If you can use maven, configure your modules and use maven ear plugin to generate an ear. The below command will be able to generate the ear.
mvn clean package
Refer to the maven question regarding a Java EE project for more information on configuring war, jars for an ear.
.jar file into an .ear
jar -cvf myApplication.ear myService.jar
.war file you can add that to the .ear file in the same way.
Refer http://supportline.microfocus.com/Documentation/books/sx51/thdpoy10.htm

Adding External jar files in Eclipse for EAR Project

I needed to add external jar files to a EAR Project.
I did add but the jar files are not reflecting in the lib directory, it is showing below to lib directory.
I added these jar files on right clicking on Deployment Descriptor, Import-> Java EE Utility Jar and choosing to copy from the folder.
When I dragged the jar file on the lib directory the velocity jar file gets changed to .ear file in the eclipse project explorer.
I have attached a snapshot of the project explorer. Could you please let me know how to add external jar files to ear project as my EJB requires external jars to be included.
I have even added classpath for jar files in my EJB manifest file
Class-Path: ErpServices-ejb.jar velocity-1.6.4.jar velocity-1.6.4-dep.jar xwork-core-2.2.1.1.jar
Looking forward to your reply. thanks.
Add those jars under folder EarContent/lib directly , then all is done.
I.E., EarContent/lib/foo.jar will work but EarContent/lib/dir/foo.jar won't.
A similar question : here
Just try project root folder right click properties -> build path -> add external jars
Instead of drag-and-drop, add it to the lib folder manually (outside the IDE), refresh the IDE, right-click the EAR project and in modules and dependencies, make sure that it is included in the lib folder and as a dependency.

How do I package a web fragment in a jar with Netbeans and Maven

When selecting a new maven project from the Netbeans New Project Menu, there is the option to create a Web Application, or a Standalone Application. I'd like to create a Class Library for use with a Web Application.
How would you recommend I go about this. I see the new Servlet 3.0 Web Fragments need to be put into the META-INF folder and saved as web-fragment.xml. I'm not too sure where I'd create this directory if I'm packing a JAR and a WAR.
Some insight would be greatly appreciated.
You can create either Java application or Web Application. Just place the META-INF folder in the src/main/resources folder. and place web-fragment.xml directly under it. You can also place any images,css or javascript files in META-INF/resources folder. So when the application you are deploying this for will look in the WEB-INF/lib folder and load all the META-INF contents of the jar onto the classpath.
when generating the .war file with standard maven settings (no special config of maven-plugin-war) the web-fragment.xml should found in the /META-INF dir of the generated JAR file inside the WAR's /WEB-INF/lib dir.
in our case the web-fragment.xml was not in this dir but in the WAR's /META-INF dir, which is the wrong place

Categories