Creating a .deb with Apache Ant and without dpkg - ant

I'm trying to create a buildfile for creating .deb installation files.
So far, so fine. My goal is to avoid dpkg, so that the build can be done from any plattform.
Now that I created all the artifacts (control.tar.gz, data.tar.gz, debian-binary) I need an Ant-Task to package these Files in a deb-File.
A deb File is just an Ar(l)-Archive, but I couldn't figure out how to create such an Archive with Ant.
I just found some "ArFileSet", so I think there is a possibility, but I don't know how and where to use this arFileSet.

You could use one of the thirdparty Ant tasks for building .deb packages:
ant-deb-task
JDeb

Related

How to build OpenCV from deb files?

I have the following deb files after following the answers from this and this.
OpenCV-4.0.1-x86_64-dev.deb
OpenCV-4.0.1-x86_64-libs.deb
OpenCV-4.0.1-x86_64-scripts.deb
OpenCV-4.0.1-x86_64.tar.gz
OpenCV-4.0.1-x86_64.tar.Z
I have generated them after turning on CPACK_BINARY=ONhowever I do not know the build order in order to successfully build OpenCV. How do I properly install them?
You should also get a shell script, mine is called OpenCV-unknown-aarch64.sh, yours will probably be called OpenCV-4.0.1-x86_64.sh
Then to install I just go to the folder with the deb files and run ./OpenCV-unknown-aarch64.sh

Maven Assembly Plugin and Executable jar

I'm able to successfully build the Maven assembly plugin in my project and generate a jar file with all the needed dependencies. But now I also want to instruct Maven after building me the jar file with dependencies, go into the target folder where the jar file with dependencies is located and run my main program.
Should I consider looking into the Maven Exec Plugin for what I want to acheive?
Yes the exec-maven-plugin is the right choice. The question is if you like to start the assembled jar archive or just a java class with it's dependencies.

workflow for xpages installation

I am trying to install prerequisties for workflow for xpages.I could not pass the below requirement. I installed ant, set the home pates, it works for a simple echo like "ant -build c:\test.xml"
Where is the setup folder to run "ant setup.activiti" command? it is not in ant"apache-ant-1.9.2" folder?
Make sure Apache Ant installed in the system, go to setup folder and run command(This
will download Activiti libraries needed in our project): ant setup.activiti
In setup there is the build.xml file ant uses. setup.activiti is a target inside that ant file. You only need to do that when you want to mess with the source build from source / contribute

How to Open an Ant project (Nutch Source) at Intellij Idea?

I want to open Nutch 2.1 source file (http://www.eu.apache.org/dist/nutch/2.1/) at Intellij IDEA. Here is an explanation of how to open it at Eclipse: http://wiki.apache.org/nutch/RunNutchInEclipse
However I am not familiar with Ant (I use Maven) and when I open that source file many classes are not known by Intellij.
i.e.:
org.apache.hadoop.mapreduce.JobContext
org.apache.gora.mapreduce.GoraMapper
How can I add them to library or what should I do?
I finally figure out how to do it. Now our team can dev nutch in IntellIJ
The process we do
Get nutch source from apache.org
wget http://www.eu.apache.org/dist/nutch/2.3/apache-nutch-2.3-src.tar.gz
Import nutch source in intellij
Get Dependencies by Ant
Run ant runtime
Run ant test
Import dependencies into Intellij
File > Project Structures
Library > Ivy
Click to Plus button
Select all libraries in apache-nutch-2.3/build/lib
Now we have a project with nutch source and all dependencies
I think, you should use ant build for nutch project. Because, pom.xml is problematical for nutch. If you want to use it anyway maven, you check maven dependency in pom.xml .
I think, the problem can be solved with the following:
You create new project via idea and add nutch source. Idea is not
supported ivy ant project. You can install ivy plugin for idea, I
suppose, Idea12 does not support it.
or
You can create ant project for nutch via eclipse and then save
project. Then open the project on idea via eclipse classpath.
or
You can configure classpath. If you use ant build, you should add jars : File->ProjectStructure as follows:
Create a library
Attach Files
Then, if you use ant build, select jars from NUTCH_HOME/build/lib/* after build.
If you use maven build, select jars from ~/.m2/* (MAVEN_REPO)
Although Intellij supports running ant scripts directly through the IDE via the ant plugin, the Intellij editor will not figure out the classpath using your build.xml file by itself.This will result in the editor showing the code littered with errors.
Unfortunately the only solution I found to this is to add all the jars manually.You can get all the jars needed by building the ant project using the ant jar command.
So these are the steps you need to follow :->
1.Run ant jar command in the root of your program
2.Copy all the jars created inside the build folder(they will not be directly inside build folder.I had to go from build->ivy->lib->{project name})
3.Paste these jars to a new folder created somewhere outside the directory
4.Go to File->Project Structure->Libraries. Press the + button.
5.Select all the copied jars and press ok to any prompts which appear.
6.Press finish and wait for indexing to complete.Any dependency errors in the editor should resolve now.
Note: Since you are manually adding jars, you would need to keep them in sync if you change your build.xml file for any dependency change.
It seems that dependencies are managed using Ivy (see the ivy folder in the sources archives), so you could try to install the Ivy plugin, which would allow you to fix your classpath issues.

Building along with Project Dependencies in Ant

I have a Java project that is dependent on other Java projects that are siblings and there is a chain of dependencies. Each individual project has a build script written in Ant. For clarity find below a sample of the same.
EARProject depends on WebProject and EJBProject: The war file that is generated by the WebProject build and jar file that is generated by the EJBProject are needed to build the EARProject.
WebProject depends on ComponentOneProject: The jar file that is generated by the ComponentOneProject build is needed to build WebProject.
EJBProject depends on ComponentTwoProject: The jar file that is generated by the ComponentTwoProject build is needed to build EJBProject.
So, when I build the EARProject build, if the dependent war and jar have not been built yet, then it should kick-off the WebProject build and EJBProject build and if the ComponentOneProject is yet to be built, the build of ComponentOneProject needs to be kicked-off and so on.
Can someone suggest a clean method by which we can accomplish this?
Facing the same problem we at our company wrote a custom Groovy script that explores the full dependency tree ant generates the Ant build scripts based on all the .project, .classpath, .settings/* files. This wasn't as difficult as it might seem as first. This way we can build our products without (My)Eclipse on a clean CVS+JDK+Groovy virtual machine. Hope it helps..

Resources