Установить каталог в Maven Antrun Plugin - PullRequest
5 голосов
/ 19 марта 2012

Я загрузил jquery-ui в свое веб-приложение, которое имеет build.xml для сжатия и минимизации. Теперь я хотел бы запустить это build.xml из моего pom.xml:

  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
      <execution>
        <id>compile</id>
        <phase>compile</phase>
        <configuration>
          <target>
            <ant antfile="src/main/webapp/resources/js/jquery-ui/build/build.xml" />
          </target>
        </configuration>
        <goals>
          <goal>run</goal>
        </goals>
      </execution>
    </executions>
  </plugin>

Но теперь поведение для этого s buildfile is wrong. It creates a dist folder on the wrong place. Here's the build.xml` из jquery-ui: https://github.com/jquery/jquery-ui/blob/master/build/build.xml

Он создает папку dist в том же месте, где находится pom.xml (там же, где я запускаю mvn clean package), и он должен создать ее в src/main/webapp/resources/js/jquery-ui/build

Можно ли запустить build.xml из указанного каталога (рабочего каталога)? Не удается получить доступ к документации для задачи Ant: http://ant.apache.org/manual/CoreTasks/ant.html

РЕДАКТИРОВАТЬ: pom.xml

<?xml version="1.0" encoding="utf-8"?>
<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>com.example.myproject</groupId>
  <artifactId>myproject</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>war</packaging>

  <name>myproject</name>

  <dependencies>
    <!-- ... -->
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <!-- ... -->
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <warName>myproject</warName>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
            <id>install</id>
            <phase>install</phase>
            <goals>
              <goal>sources</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <executions>
          <execution>
            <phase>compile</phase>
            <configuration>
              <executable>make</executable>
              <workingDirectory>src/main/webapp/resources/js/jquery</workingDirectory>
            </configuration>
            <goals>
              <goal>exec</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase>compile</phase>
            <configuration>
              <target>
                <ant antfile="build.xml" dir="src/main/webapp/resources/js/jquery-ui/build" />
              </target>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

</project>

При запуске mvn clean package Я получаю следующие ошибки в мишени minify файла build.xml jquery-ui:

[apply] build/minify-js.sh: Line 3: /home/danny/myproject/dist/jquery-ui-1.9pre/ui/minified/jquery-ui.min.js: File or directory not found

Правильный путь должен быть $ {basedir} /src/main/webapp/resources/js/jquery-ui/build/dist/jquery-ui-1.9pre/ui/minified/jquery-ui.min.js вместо из вышеперечисленных ...

Ответы [ 2 ]

5 голосов
/ 19 марта 2012

Согласно http://ant.apache.org/manual/Tasks/ant.html, вы можете использовать атрибут dir:

<mkdir dir="${project.build.directory}/jquery-ui" />
<ant antfile="src/main/webapp/resources/js/jquery-ui/build/build.xml" dir="${project.build.directory}/jquery-ui" />

С другой стороны, действительно ли вы хотите создать каталог build под вашим src каталог?Разве это не должно идти в target скорее?

0 голосов
/ 19 марта 2012

Я бы рекомендовал использовать плагин maven вместо вызовов Ant.На основе docs maven-minify-plugin , чтобы делать то, что вам нужно.Плагин можно найти в Maven Central.И кроме того, вы найдете maven-plugin-documentmention как использовать maven-plugin.

...