0

自動的に生成された ant ファイルを含む Java プロジェクトがあります。そのため、プロジェクトをビルドするために ant を使用する必要があります。新しいライブラリをいくつか追加する必要があり、以下の maven pom ファイルを使用しました。次に、Ant タスクを使用して pom の依存関係を取得し、それらを lib フォルダーにコピーします。ただし、次の Ant タスクでは、pom 内のプロファイルの依存関係が欠落しています。私がやりたいのは、現在のOSに基づいて、OSに対応するxurlrunner jarが含まれるようにするantタスクです。これはpomのmavenによって行われますが、どうすればantでそれを行うことができますか?

---アリ対象タスク----

<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
             uri="urn:maven-artifact-ant"
             classpathref="maven-ant-tasks.classpath"/>

    <target name="retrieve-dependencies">
        <artifact:dependencies filesetId="dependency.fileset"
                               sourcesFilesetId="profiles.dependency.fileset"
                               versionsId="dependency.versions">
            <pom file="${basedir}/nbproject/pom.xml"/>
        </artifact:dependencies>

        <delete dir="${lib.dir}/browser"/>
        <copy todir="${lib.dir}/browser">
            <fileset refid="dependency.fileset"/>
            <mapper classpathref="maven-ant-tasks.classpath" classname="org.apache.maven.artifact.ant.VersionMapper"
                    from="${dependency.versions}" to="flatten"/>
        </copy>

    </target>

---pom.xml-------

    <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>org.drOffice.browser</groupId>
  <artifactId>embedded-browser</artifactId>
  <version>0.0.1-SNAPSHOT</version>
   <build>
                <plugins>
                        <plugin>
                                <artifactId>maven-compiler-plugin</artifactId>
                                <configuration>
                                        <compilerVersion>1.6</compilerVersion>
                                        <encoding>UTF-8</encoding>
                                        <source>1.6</source>
                                        <target>1.6</target>
                                        <showDeprecation>true</showDeprecation>
                                </configuration>
                        </plugin>
                        <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>

                </plugins>
        </build>
        <repositories>
                <repository>
                        <id>atomation-repository</id>
                        <name>atomation maven repository</name>
                        <url>http://atomation-repository.googlecode.com/svn/trunk</url>
                        <releases>
                                <enabled>true</enabled>
                                <updatePolicy>always</updatePolicy>
                                <checksumPolicy>warn</checksumPolicy>
                        </releases>
                        <snapshots>
                                <enabled>true</enabled>
                                <updatePolicy>always</updatePolicy>
                                <checksumPolicy>warn</checksumPolicy>
                        </snapshots>
                        <layout>default</layout>
                </repository>
        </repositories>
        <dependencies>
                <dependency>
                        <groupId>ru.atomation.jbrowser</groupId>
                        <artifactId>jbrowser</artifactId>
                        <version>1.9</version>
                        <scope>compile</scope>
                </dependency>
        </dependencies>

        <profiles>

            <profile>
                        <id>generic</id>
                        <activation>
                                <activeByDefault></activeByDefault>
                        </activation>
                </profile>
                <profile>
                        <id>linux</id>
                        <dependencies>
                                <dependency>
                                        <groupId>ru.atomation.native</groupId>
                                        <artifactId>xulrunner-linux</artifactId>
                                        <version>1.9</version>
                                </dependency>
                        </dependencies>
                </profile>
                <profile>
                        <id>solaris</id>
                        <dependencies>
                                <dependency>
                                        <groupId>ru.atomation.native</groupId>
                                        <artifactId>xulrunner-solaris</artifactId>
                                        <version>1.9</version>
                                </dependency>
                        </dependencies>
                </profile>
                <profile>
                        <id>macosx</id>
                        <dependencies>
                                <dependency>
                                        <groupId>ru.atomation.native</groupId>
                                        <artifactId>xulrunner-macosx</artifactId>
                                        <version>1.9</version>
                                </dependency>
                        </dependencies>
                </profile>
                <profile>
                        <id>windows</id>
                        <dependencies>
                                <dependency>
                                        <groupId>ru.atomation.native</groupId>
                                        <artifactId>xulrunner-windows</artifactId>
                                        <version>1.9</version>
                                </dependency>
                        </dependencies>
                </profile>
        </profiles>
</project>
4

1 に答える 1

0

Ant のみを使用して依存関係をコピーする場合は、maven を使用してこれらの依存関係をコピーする方がはるかに簡単だと思います。

本当に Ant を使用したい場合は、単純に pom (プロファイル内) でプロパティを定義し、それを Ant スクリプトで使用できます。

何かのようなもの

<profile>
     <id>linux</id>
     <properties>
         <custom.property>linux</custom.property>
     <properties>

.....
于 2013-02-11T09:11:20.363 に答える