I decided I wanted to start learning about databasing, primarily with a focus on MySQL. I figured I'd follow this tutorial with high hopes of better understanding how these thing work and can be integrated into our programs. But I've ran into a small issue that I don't know how to bypass.
A couple of things:
Ant has been installed and appended to my Path Environment Variable.
I'm using the MySQL Community Edition database.
MySQL Connector J is the connector I've chosen to use. It has been appened to both my Path Environment Variable as well as denoted property of MYSQLDRIVER in my mysql-build-properties.xml file.
When I go to run the command ant create-mysql-database in my JDBCTutorial Directory it give me an error saying the following:
C:\[LOCATION]\JDBCTutorial ant create-mysql-database
BUILD FAILED
C:\[LOCATION]\JDBCTutorial\build.xml:73: Class
**Not Found: JDBC driver com.mysql.jdbc.Driver could not be loaded**
Looking in the build.xml file on line:73 I have the following:
70 <target name="create-mysql-database">
71 <sql driver="${DB.DRIVER}" url="${DB.URL.NEWDATABASE}" userid="${DB.USER}"
72 password="${DB.PASSWORD}" classpathref="CLASSPATH"
73 delimiter="${DB.DELIMITER}" autocommit="false" onerror="continue">
74 create database ${DB.SID};
75 </sql>
76 </target>
The build.xml file uses a mysql-build-properties.xml file containing the following:
<project name="MySQL Properties" default="all" basedir=".">
<property name="JAVAC" value="C:\\Program Files (x86)\\Java\\jdk1.7.0_21\\bin\\javac"/>
<property name="JAVA" value="C:\\Program Files (x86)\\Java\\jdk1.7.0_21\\bin\\java" />
<property name="PROPERTIESFILE" value="properties/mysql-sample-properties.xml"/>
<property name="MYSQLDRIVER" value="C:\\Program Files (x86)\\MySQL\\MySQL Connector J\\mysql-connector-java-5.1.29-bin.jar"/>
<path id="CLASSPATH">
<pathelement location = "classes"/>
<pathelement location = "${MYSQLDRIVER}"/>
<pathelement location = "lib/JDBCTutorial.jar"/>
</path>
<property name="DB.VENDOR" value="mysql"/>
<property name="DB.DRIVER" value="com.mysql.jdbc.Driver"/>
<property name="DB.HOST" value="localhost"/>
<property name="DB.PORT" value="3306"/>
<property name="DB.SID" value="testdb"/>
<property name="DB.URL.NEWDATABASE" value="jdbc:mysql://${DB.HOST}:${DB.PORT}/?allowMultiQueries=true"/>
<property name="DB.URL" value="jdbc:mysql://${DB.HOST}:${DB.PORT}/${DB.SID}?allowMultiQueries=true"/>
<property name="DB.USER" value="root"/>
<property name="DB.PASSWORD" value="root"/>
<property name="DB.DELIMITER" value=";"/>
</project>
If anyone knows what I may have set up wrong please let me know.
Your property MYSQLDRIVER should point to a JAR file. Shouldn't it be mysql-connector-java-5.1.29-bin.jar instead of mysql-connector-java-5.1.29-bin?
And maybe you can try to put this JAR into a location with a path which doesn't contain spaces in it.
my problem with that error was caused by single "\" in value of MYSQLDRIVER (a path like C:\\Program Files (x86)\\MySQL\\Connector.J 5.1\\mysql-connector-java-5.1.35-bin.jar), perhaps caused by some reading problem on special characters
Related
I am trying to use my junit test for sonar's code coverage. I am using Ant. I am trying to update build.xml like this:
<!-- ========= Define SonarQube Scanner for Ant Target ========= -->
<target name="sonar" depends="compile">
<taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
<!-- Update the following line, or put the "sonar-ant-task-*.jar" file in your "$HOME/.ant/lib" folder -->
<classpath path="/lib/sonar-ant-task-2.0.jar" />
</taskdef>
<!-- Execute SonarQube Scanner for Ant Analysis -->
<sonar:sonar />
</target>
But it is showing "resource="org/sonar/ant/antlib.xml" not found. I have sonar-ant-task-2.0.jar in my lib folder. and I am using intellij.
This . are the properties i added in build.xml
<property name="sonar.projectKey" value="org.codehaus.sonar:example-java-ant" />
<property name="sonar.projectName" value="SIML project" />
<property name="sonar.projectVersion" value="1.0" />
<property name="sonar.test" value="test" />
Please help :) :)
And let me know if you need any other information to make question clear. :)
So, I'm hoping this is a simple question. I've downloaded openjpa-all-2.3.0.jar (and mysql-connector-java-5.1.31-bin.jar) So, I have this as my build.xml
<?xml version="1.0" ?>
<project name="reverser" default="reversemap" basedir=".">
<taskdef name="reversemappingtool" classname="org.apache.openjpa.jdbc.ant.ReverseMappingToolTask">
<classpath>
<pathelement location="${basedir}/mysql-connector-java-5.1.31-bin.jar" />
<pathelement location="${basedir}/openjpa-all-2.3.0.jar" />
</classpath>
</taskdef>
<target name="reversemap">
<reversemappingtool package="com.whatever.dbresults" directory="${basedir}/src" customizerProperties="${basedir}/conf/reverse.properties" metadata="none" generateAnnotations="true" />
</target>
</project>
In my reverse.properties file, I have:
ConnectionDriverName=com.mysql.jdbc.Driver
ConnectionDriverURL=jdbc:mysql://localhost:3306/db
ConnectionUser=user
ConnectionPassword=pw
when I run it tho, I get:
/tmp/apache-openjpa-2.3.0/build.xml:10: <openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.util.UserException: The persistence provider is attempting to use properties in the persistence.xml file to resolve the data source. A Java Database Connectivity (JDBC) driver or data source class name must be specified in the openjpa.ConnectionDriverName or javax.persistence.jdbc.driver property. The following properties are available in the configuration: "org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl#ec63420c".
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:72)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:849)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:878)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource2(JDBCConfigurationImpl.java:920)
at org.apache.openjpa.jdbc.schema.SchemaGenerator.<init>(SchemaGenerator.java:85)
at org.apache.openjpa.jdbc.meta.ReverseMappingTool.run(ReverseMappingTool.java:2009)
at org.apache.openjpa.jdbc.ant.ReverseMappingToolTask.executeOn(ReverseMappingToolTask.java:295)
This is probably the wrong way of debugging this problem, but tracked the properties file being loaded, at ReverseMappingToolTask.java line 282, and it then passes that to
flags.customizer.setConfiguration(customProps);
before calling
ReverseMappingTool.run(conf, files, flags, loader);
The error tho, seems to happen at line 2009 of ReverseMappingTool, at a point where it never seems to even touch the "flags".
Well. My "debugging" is probably a non-sequitur/red-herring/what have you. How can I get the reverse mapping to work in the simplest way possible? I just want to use it with ant, and not maven, etc.
EDIT 2014-08-13
OK, I managed to move the error along by changing my build.xml to
<?xml version="1.0" ?>
<project name="reverser" default="reversemap" basedir=".">
<taskdef name="reversemappingtool" classname="org.apache.openjpa.jdbc.ant.ReverseMappingToolTask">
<classpath>
<pathelement location="${basedir}/mysql-connector-java-5.1.31-bin.jar" />
<pathelement location="${basedir}/openjpa-all-2.3.0.jar" />
</classpath>
</taskdef>
<target name="reversemap">
<reversemappingtool package="com.whatever.dbresults" directory="${basedir}/src" metadata="none" generateAnnotations="true">
<config
connectionDriverName="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/db"
connectionUserName="user"
connectionPassword="pw"
/>
</reversemappingtool>
</target>
</project>
But, then now, I get:
<openjpa-2.3.0-r422266:1540826 fatal user error> org.apache.openjpa.util.MetaDataException: MetaDataFactory could not be configured (conf.newMetaDataFactoryInstance() returned null). This might mean that no configuration properties were found. Ensure that you have a META-INF/persistence.xml file, that it is available in your classpath, or that the properties file you are using for configuration is available. If you are using Ant, please see the <properties> or <propertiesFile> attributes of the task's nested <config> element. This can also occur if your OpenJPA distribution jars are corrupt, or if your security policy is overly strict.
Thanks!
OK, well, I finally got it working. Of course, I don't know if this is the "right" way or not. But, it generates my classes, and that's really all I wanted.
So, my new build file looks like this:
<?xml version="1.0" ?>
<project name="reverser" default="reversemap" basedir=".">
<taskdef name="reversemappingtool" classname="org.apache.openjpa.jdbc.ant.ReverseMappingToolTask">
<classpath /> <!-- removed classpath for the sake of making this post short -->
</taskdef>
<target name="reversemap">
<reversemappingtool package="com.whatever.db" directory="${basedir}/src" metadata="none" generateAnnotations="true">
<config propertiesFile="persistence.xml" />
</reversemappingtool>
</target>
</project>
And, my persistence.xml looks like
<?xml version="1.0"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="openjpa">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<properties>
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/db"/>
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
<property name="openjpa.ConnectionUserName" value="user"/>
<property name="openjpa.ConnectionPassword" value="password"/>
<property name="openjpa.Log" value="DefaultLevel=WARN, Tool=INFO"/>
</properties>
</persistence-unit>
</persistence>
So. I think that does it. Hopefully if someone else comes along and wants to know how to do reversemap with just ant and java, this will help.
Im trying to automate our build process using bb ant tools and im running into a few errors
There are 3 different errors where 2 of them are related
[javac] D:\dev\java\workspaces\bb workspace\blackberry\Adaffix\src\com\adaffix\blackberry\AdaffixApplication.java:55: cannot find symbol [javac] symbol: class PhoneListener [javac] public class AdaffixApplication extends UiApplication implements PhoneListener, GlobalEventListener {
[javac] D:\dev\java\workspaces\bb workspace\blackberry\Adaffix\src\com\adaffix\blackberry\AdaffixApplication.java:29: package net.rim.blackberry.api.invoke does not exist [javac] import net.rim.blackberry.api.invoke.Invoke;
[javac] D:\dev\java\workspaces\bb workspace\blackberry\Adaffix\src\com\adaffix\blackberry\main\block\AddBlock.java:167: warning: unmappable character for encoding UTF-8 [javac] //tilf?j til db
and here is my build.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="appname" default="build" basedir=".">
<!-- BLACKBERRY ANT TOOLS -->
<property name="bb-ant-tools.home" location="D:/dev/bb-ant-tools-1.2.13-bin" />
<taskdef resource="bb-ant-defs.xml" classpath="${bb-ant-tools.home}/bb-ant-tools.jar" />
<property name="jdehome" value="D:/dev/eclipse/blackberry/plugins/net.rim.ejde.componentpack6.0.0_6.0.0.43/components" />
<property name="jdkhome" value="C:/Program Files (x86)/Java/jdk1.6.0_34" />
<!-- CONFIG STUFF -->
<property name="cod.name" value="appname" />
<property name="app.name" value="appname" />
<property name="app.version" value="2.7.5" />
<property name="app.description" value="" />
<property name="app.vendor" value="appname GmbH" />
<!-- FOLDERS -->
<property name="build.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/build" />
<property name="bbminterface.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/BBMInterface" />
<property name="bbmimpl.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/BBMImplementation" />
<property name="main.dir" location="D:/dev/java/workspaces/bb workspace/blackberry/appname" />
<target name="build" description="Builds Project">
<!--<mkdir dir="${build.dir}" /> -->
<javac target="1.4" source="1.4" destdir="${build.dir}" encoding="utf-8">
<src path="${bbminterface.dir}/src"/>
<src path="${bbmimpl.dir}/src"/>
<src path="${main.dir}/src"/>
</javac>
<rapc output="BBMInterface" destdir="${build.dir}" jdehome="${jdehome}" jdkhome="${jdkhome}" verbose="false" quiet="true" nowarn="true">
<src>
<fileset dir="${bbminterface.dir}/src"/>
</src>
<jdp type="library" title="appname BBM Interface" vendor="${app.vendor}" version="1.0.0">
<entry title="appname BBM Interface" description=""/>
</jdp>
</rapc>
<rapc output="BBMImplementation" destdir="${build.dir}" jdehome="${jdehome}" jdkhome="${jdkhome}" verbose="false" quiet="true" nowarn="true">
<src>
<fileset dir="${bbmimpl.dir}/src"/>
</src>
<import location="${bbmimpl.dir}/external jars/bbm sdk/net_rim_bb_qm_platform.jar" />
<import location="${build.dir}/BBMInterface.jar" />
<jdp type="library" title="appname BBM Implementation" vendor="${app.vendor}" version="1.0.0" runonstartup="true" startuptier="6">
<entry title="appname BBM Implementation" description="" runonstartup="true" startuptier="6"/>
</jdp>
</rapc>
<javac srcdir="${main.dir}" encoding="UTF-8" />
<rapc output="${cod.name}" destdir="${build.dir}" jdehome="${jdehome}" jdkhome="${jdkhome}" verbose="false">
<src>
<fileset dir="${main.dir}/src" />
</src>
<src>
<fileset dir="${main.dir}/res" />
</src>
<src>
<fileset file="${main.dir}/external jars/bb payment sdk/paymentapi.jar" />
<fileset file="${main.dir}/external jars/bb advertising sdk/net_rim_bbapi_adv_app.jar" />
</src>
<import location="${main.dir}/external jars/bb payment sdk/paymentapi.jar" />
<import location="${main.dir}/external jars/bb advertising sdk/net_rim_bbapi_adv_app.jar" />
<import location="${build.dir}/BBMInterface.jar"/>
<jdp type="cldc" title="${app.name}" vendor="${app.vendor}" icon="${main.dir}/res/image/icon.png" version="${app.version}" description="${app.description}" startuptier="7" ribbonposition="0">
<entry title="${app.name}" icon="${main.dir}/res/image/icon.png" description="${app.description}" runonstartup="true" arguments="boot" systemmodule="true" startuptier="7" ribbonposition="0" />
<!--<entry title="${app.name}" icon="../res/icon.png" description="#{description}" arguments="daemon" runonstartup="true" systemmodule="true" startuptier="7" ribbonposition="0" /> -->
</jdp>
</rapc>
<sigtool codfile="${build.dir}/BBMInterface.cod" password="password"/>
<sigtool codfile="${build.dir}/BBMImplementation.cod" password="password"/>
<sigtool codfile="${build.dir}/${cod.name}.cod" password="password" />
</target>
<target name="sign" description="Sign the cod files">
</target>
<!--<target name="clean">
<delete dir="${dest.dir}" />
</target> -->
</project>
can anyone point me in the right direction? im kind of lost here
i thought that all the RIM api's would get included by bb ant tools automatically
Are you building on Linux or Windows? Rapc compiles java source to .class files with the Java SDK "javac" before compiling the class files into .cod files. Unfortunately, rapc does not provide any way to pass the "-encoding" option to javac, so you are stuck with the platform default encoding. This is cp-1252 on Windows, MacRoman on OSX, and UTF-8 on Linux. Since it is trying to interpret your source as UTF-8, I'll guess you're using linux.
There are three options for fixing this:
You can go back to explicitly compiling the java source with the javac ant task. Your previous attempt wasn't working because you were still passing source code to rapc. Rapc can also start with class files, so you would do the javac step yourself, then pass the output directory to rapc for processing.
If you don't want to sort out the javac command yourself, you can also override the default system encoding, with a patch to bb-ant-tools.
If you only ever build your BlackBerry application on Linux, you can just switch your source file encoding to UTF-8 and be done with this. This won't work well if any developers are using Windows though. Windows is a common choice as it is the only place the simulators work. By switching to UTF-8 encoding, the Windows developers will face the same problem you are facing now - rapc will be compiling with the system default of cp-1252, but the source files will be in UTF-8.
The problem isn't in bb-ant-tools.
Why do you need javac part if your rapc could build project from sources? You even don't use result of javac after. My recommendation to remove it and it will fix your build.
happened to me. was because i hadn't copied selenium-server-standalone-3.4.0.jar to my C:\jars dir (ws.jars)
I am trying to deploy a WAR on the mentioned tomcat application server. However following is the error that I get when I try to use the tomcat manager / ant script for deployment.
java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException: Error initializaing : java.lang.IllegalArgumentException: The archive [jar:file:/var/lib/tomcat6/webapps/afgretail.war!/] is malformed and will be ignored: an entry contains an illegal path [/]
The WAR contains spring beans, HTML pages, js, images, css etc. We are currently deploying the project by coping the unzipped project directly into the webapps folder on the tomcat server which works fine. However we would like to deploy using the ant script developed to deploy war file to a remote tomcat.
The development was done on windows platform but the tomcat server resides on Linux (Oracle Enterprise Linux)
Snippet that does deployment as follows:
<!-- Configure the folder and context path for this application -->
<property name="webapp" value="walton" />
<property name="path" value="/walton" />
<!-- Configure properties to access the Manager application -->
<property name="url" value="http://localhost:8080/manager/html" />
<!-- <property name="url" value="http://osm4.afgonline.com.au:8080/manager/html" />-->
<property name="username" value="tomcat" />
<property name="password" value="s3cret" />
<property name="dist.dir" value="dist" />
<property name="webapp.path" value="${dist.dir}/${webapp}" />
<property name="project.path" value="C:/java/workspace/afghl_walton"/>
<path id="deployer.classpath">
<!--fileset dir="${basedir}/lib"-->
<fileset dir="C:\Program Files\Apache Software Foundation\Tomcat 6.0\lib\">
<include name="*.jar" />
</fileset>
</path>
<!-- Configure the custom Ant tasks for the Manager application -->
<taskdef resource="org/apache/catalina/ant/catalina.tasks"
classpathref="deployer.classpath" />
<target name="deploy" description="Deploy web application">
<deploy url="${url}" username="${username}" password="${password}"
path="${path}" war="${project.path}/${webapp.path}.war" update="true" />
</target>
Any help will be apprrciated. If there is more information required please let me know.
Thanks,
Khush
I had the same problem with Tomcat 5.5.34. I build the WAR with Ant and the WAR target contained the following task:
The prefix caused an jar entry named "/" in the war package and since Tomcat 5.5.26 that entry causes an exception during startup of the Tomcat container.
Changing the prefix attribute value of the war command to
removed all my problems.
Best regards,
Chris
Just avoid using out and getOutputStream at the same time!
From what I understood, FatJar is an Eclipse plugin which is based on the OSGi framework. I believe this makes it hard to use outside of an OSGi platform. Also, looking at decompiled FatJar, it seems to be requiring lots of OSGi and Eclipse classes, like org.eclipse.jdt.core.IJavaProject and org.osgi.framework.BundleContext, for example.
So, in front of all this, I'm wondering if there is any way to use our precious *.fatjar files with Hudson (using a script or whatever).
Any good advice is welcome!
Thanks!
After more work and research, it seems that, even though FatJar is primarily an Eclipse plugin, it is possible to integrate it quite easily in continuous integration servers.
In my case, using Ant, I have found that it was possible to run the FatJar plugin outside of Eclipse using the following code (originally from this site).
<project name="FatJar MySuperDuperClass.jar (experimental)" default="main" basedir=".">
<!-- this file was created by Fat-Jar Eclipse Plug-in -->
<!-- the ANT-Export is in a very early stage, so this -->
<!-- is only experimental, ANT 1.6 or above is -->
<!-- required, feedback is always welcome: -->
<!-- http://sourceforge.net/projects/fjep -->
<!-- uncomment the following lines if using ANT outside Eclipse -->
<!--
<property name="fjepPath" value="plugins/net.sf.fjep.fatjar_0.0.31/fatjar.jar"/>
<taskdef name="fatjar.build" classname="net.sf.fjep.anttask.FJBuildTask" classpath="${fjepPath}"/>
<typedef name="fatjar.manifest" classname="net.sf.fjep.anttask.FJManifestType" classpath="${fjepPath}"/>
<typedef name="fatjar.exclude" classname="net.sf.fjep.anttask.FJExcludeType" classpath="${fjepPath}"/>
<typedef name="fatjar.jarsource" classname="net.sf.fjep.anttask.FJJarSourceType" classpath="${fjepPath}"/>
<typedef name="fatjar.filesource" classname="net.sf.fjep.anttask.FJFileSourceType" classpath="${fjepPath}"/>
-->
<!-- uncomment the above lines to use ANT outside of Eclipse -->
<target name="main">
<fatjar.build output="MySuperDuperClass.jar">
<fatjar.manifest mainclass="de.schwobeseggl.test.MySuperDuperClass"/>
<fatjar.filesource path="bin" relpath=""/>
<fatjar.jarsource file="lib/commons-cli.jar" relpath=""/>
<fatjar.jarsource file="lib/jbossall-client.jar" relpath=""/>
<fatjar.jarsource file="lib/junit.jar" relpath=""/>
<fatjar.jarsource file="lib/log4j.jar" relpath=""/>
<fatjar.jarsource file="lib/jdom.jar" relpath=""/>
</fatjar.build>
</target>
</project>
I uncommented the block of 6 lines at the beginning and it's working good. Reading the comment on top, it seems this was exported using FatJar itself, but don't know how to do this. I just adjusted this sample to my use case.
FatJar is an Eclipse plugin providing one-jar functionality. Outside of Eclipse you just use one-jar directly.
http://one-jar.sourceforge.net/
Note, that the Eclipse complication process is not easy to script. I've done it in Ant using ant4eclipse and I would recommend against it. EDIT: As of 2015 you should look into Maven projects instead of plain Eclipse.
My advice would be to look for an alternative to FatJar that works with your build tool.
If you are using Maven, take a look at the shade plugin.
For Ant, you can do the job with the appropriate sequence of unjaring, copying and jaring tasks.
Yes, it's possible to use it out of eclipse. Try a configuration similar to the following one:
<property name="java.source" value="1.7" />
<property name="java.target" value="1.7" />
<property name="src.dir" location="src" />
<property name="libraries.dir" location="lib" />
<property name="dist.dir" location="out" />
<property name="build.classes.dir" location="${dist.dir}\classes" />
<property name="dist.jar" value="MyJAR.jar" />
<property name="fjepPath" value="${libraries.dir}\fatjar.jar" />
...
<typedef name="fatjar.manifest" classname="net.sf.fjep.anttask.FJManifestType"
classpath="${fjepPath}" loaderref="${fjepPath}" />
<typedef name="fatjar.exclude" classname="net.sf.fjep.anttask.FJExcludeType"
classpath="${fjepPath}" loaderref="${fjepPath}" />
<typedef name="fatjar.jarsource" classname="net.sf.fjep.anttask.FJJarSourceType"
classpath="${fjepPath}" loaderref="${fjepPath}" />
<typedef name="fatjar.filesource" classname="net.sf.fjep.anttask.FJFileSourceType"
classpath="${fjepPath}" loaderref="${fjepPath}" />
<taskdef name="fatjar.build" classname="net.sf.fjep.anttask.FJBuildTask"
classpath="${fjepPath}" loaderref="${fjepPath}" />
...
<target name="buildJar">
<echo>Building JAR</echo>
<fatjar.build output="${dist.dir}\${dist.jar}">
<fatjar.manifest mergemanifests="false" mainclass="com.company.app.Main" />
<fatjar.filesource path="${build.classes.dir}" />
<fatjar.jarsource file="${libraries.dir}\log4j-1.2.17.jar" />
<fatjar.jarsource file="${libraries.dir}\commons-httpclient-2.0.jar" />
...
</fatjar.build>
</target>