hi, Could you please point me to existent ant / maven file (or hint the
other solution), that helps install a great amount of ordinary jar files
into local maven repository.
Basically, I'm going to reorganize my projects with maven principles and
tool, so I need to install into repository all currently used thirty-part
jars (that have the commercial nature and have not been exposed into
private or public repository yet). There are a lot of them so I can't
neither to invoke the command for ones that have no dependencies
mvn deploy:deploy-file -DgroupId=FIXED_CORPORATE_ID
-DartifactId=NAMEOFJAR_VARIED -Dversion=2.6 -Dpackaging=jar
-Dfile=NAMEOFJAR_VARIED.jar -Durl=file:\\c:\usr\local\.m2\local-repository
nor to provide an POM file when some has dependencies declared in
MANIFEST/classpath
I'd tried to write the ant script that do this (with no manifest analyzing),
but have problem, that property 'mt.filename' below has not been resolved in
runtime
<?xml version="1.0" encoding="UTF-8"?>
<project name="Migration Tool" default="install" basedir=".">
<description>Install plain jar files into maven repository with
specified metadata</description>
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="/usr/share/java/lib/ant-contrib-1.0b3.jar"
/>
</classpath>
</taskdef>
<!-- - - - - - - - - - - - - - - - - -
properties: maven properties
- - - - - - - - - - - - - - - - - -->
<property name="mt.maven-repository.url"
value="file:\\c:\usr\local\.m2\local-repository" />
<property name="mt.maven.home" value="/bin/build-tools/apache-
maven-2.0.8/bin" />
<property name="mt.maven.bin" value="mvn.bat" />
<property name="mt.groupId" value="corporategroupid" /> <!-- fixed for
all-->
<property name="mt.version" value="3.0.1" /> <!-- fixed for all-->
<!-- =================================
target: install
================================= -->
<target name="install" description="install file into repository">
<for param="file">
<path>
<fileset dir=".">
<filename name="*.jar" />
</fileset>
</path>
<sequential>
<!-- deploy -->
<propertyregex override="yes" property="mt.filename"
input="@{file}" regexp=".*/([^\.]*)\.jar" replace="\1" />
<echo>@{file}</echo>
<echo>${mt.filename}</echo>
<exec executable="${mt.maven.home}/${mt.maven.bin}">
<arg value="deploy:deploy-file" />
<arg value="-DgroupId=${mt.groupId}" />
<arg value="-DartifactId=${mt.filename}" />
<arg value="-Dversion=${mt.version}" />
<arg value="-Dpackaging=jar" />
<arg value="[EMAIL PROTECTED]" />
<arg value="-Durl=${mt.maven-repository.url}" />
</exec>
<!-- deploy:deploy-file -DgroupId=${mt.groupId}
-DartifactId=LocalNameOfFileWithNoExtension -Dversion=${mt.version}
-Dpackaging=jar -Dfile=LocalNameOfFile.jar -Durl=${mt.maven-repository.url}
-->
</sequential>
</for>
</target>
</project>
so it lists the @{file} as absolute path, when ${mt.filename} remains '${
mt.filename}' (unresolved). I can't just pass @{file} to maven args, since
it complains on the long (absolute) path into arguments (reported: Missing
group, artifact, version or packaging information).
Probably using ant-maven task (install-file) has the same limitation, since
i need to iterate over a file list and provide short file names to maven.
The first question is if anyone know the resolution.
The next question is if anyone know the simple approach (extension) to
extract class-path entry from manifest and put them as args for on-fly
created dependencies (with no predefined pom)?
ant -version = 1.7.0
mvn --version = 2.0.8
java -version = 1.5.0_07
OS = win xp
--
Best regards,
~ Xasima ~