Maven exec:exec - 需要插件的其他类路径元素

时间:2017-04-05 18:45:17

标签: java maven

我正在使用maven exec插件来运行我的项目。我的项目有一个Start类,它使用嵌入式Jetty来运行应用程序。 POM正常部分对码头的依赖性标记为"提供"因为我不想在最后的战争中使用它。

如何在运行mvn exec:exec时告诉exec插件将以下2个jar添加到类路径中? executableDepedency元素不会将其添加到类路径中。目前,类路径是所有未标记为testprovided的依赖项jar。

<plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.5.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>exec</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <executableDependency>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty</artifactId>
                    <version>${jetty.version}</version>
                </executableDependency>
                <executableDependency>
                    <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-management</artifactId>
                    <version>${jetty.version}</version>
                </executableDependency>
                <executable>java</executable>
                <arguments>
                    <argument>-classpath</argument>
                    <classpath />                       
                    <argument>net.mikeski.Start</argument>
                </arguments>
            </configuration>
        </plugin>

1 个答案:

答案 0 :(得分:-1)

事实证明,当使用exec:java(这是我想要的)时,有两个选项可供Maven使用。您可以为每个指定true / false:

  • 在类路径中使用项目依赖项
  • 使用类路径中的插件依赖项

因此,我将我的provided项目依赖项添加为插件依赖项,并将这两个属性设置为true并且它可以正常工作。

          <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.5.0</version>
                <dependencies>
                    <dependency>
                    <dependency>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty</artifactId>
                        <version>${jetty.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-util</artifactId>
                        <version>${jetty.version}</version>
                    </dependency>
                    <dependency>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>jetty-management</artifactId>
                        <version>${jetty.version}</version>
                    </dependency>
                </dependencies>
                <executions>
                    <execution>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includePluginDependencies>true</includePluginDependencies>
                    <includeProjectDependencies>true</includeProjectDependencies>
                    <executable>java</executable>
                    <mainClass>com.whatever.Main</mainClass>
              </configuration>
        ...