Добавить дополнительный путь к exec-maven-plugin - PullRequest
6 голосов
/ 07 апреля 2010

Я хотел бы добавить дополнительный путь к классу в exec-maven-plugin.
Помимо% classpath я хотел бы добавить дополнительный путь к каталогу, содержащему ресурсы (/ Users / kornp / resources). В настоящее время мой пом выглядит так:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.1.1</version>
  <configuration>
    <executable>java</executable>
    <classpathScope>runtime</classpathScope>
    <arguments>
      <argument>%classpath:/Users/kornp/resources</argument>
      <argument>org.drrabbit.maventest.App</argument>
    </arguments>
  </configuration>
</plugin>

Как мне это настроить?

Ответы [ 4 ]

5 голосов
/ 19 сентября 2012

У меня есть несколько файлов конфигурации в определенной директории вне моей исходной папки. Поэтому я определил дополнительные ресурсы для моего файла pom.xml.

моя примерная структура каталогов:

+ src
+ conf
  - app.properties
  - log4j.xml
- pom.xml

my pom.xml:

<build>
  <resources>
    <resource>
      <directory>conf</directory>
    </resource>
    <resource>
      <directory>src/main/resources</directory>
    </resource>
  </resources>

  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.2.1</version>
      <configuration>
        <executable>java</executable>
        <mainClass>com.mycompany.MyMainClass</mainClass>
      </configuration>
    </plugin>
  </plugins>
<build>

Теперь мы можем выполнить программу:

mvn clean compile exec:java
2 голосов
/ 07 апреля 2010

Вы пытались использовать параметр commandlineArgs (как указано в примере exec )?

1 голос
/ 19 сентября 2011

Хотя это выглядит менее элегантно, но переключение на плагин antrun должно работать:

<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>runSomething</id>
            <phase>package</phase>
            <goals>
                <goal>run</goal>
            </goals>
            <configuration>
                <target>
                    <property name="runtime_classpath" refid="maven.runtime.classpath"/>

                    <java classname="org.drrabbit.maventest.App" 
                            fork="true" 
                            failonerror="true" 
                            maxmemory="512m">

                        <classpath>
                            <pathelement path="${project.build.directory}/some/extra/resources" />
                            <pathelement path="${runtime_classpath}" />
                        </classpath>
                    </java>
                </target>
            </configuration>
        </execution>
    </executions>
</plugin>

Тем не менее, кажется, что не стоит помещать дополнительные ресурсы где-то за пределами проекта, как предлагал ваш оператор. Вам следует либо подумать о том, чтобы поместить это как часть проекта, либо сделать его флягой и развернуть его в репозитории maven, чтобы вы могли поместить его как зависимость от плагина.

0 голосов
/ 10 апреля 2010

Хорошо,

Я адаптировал плагин так, чтобы аргументы командной строки можно было полностью указать (включая параметр% classpath)

...