【问题标题】:Maven exec:exec - Need additional classpath elements for pluginMaven exec:exec - 插件需要额外的类路径元素
【发布时间】:2017-04-05 18:45:16
【问题描述】:

我正在使用 maven exec 插件来运行我的项目。我的项目有一个使用嵌入式 Jetty 运行应用程序的 Start 类。 jetty 的 POM 正常部分的依赖被标记为“已提供”,因为我不希望它出现在最终的 WAR 中。

在运行mvn exec:exec 时,如何告诉 exec 插件将下面的 2 个 jar 添加到类路径中? executableDepedency 元素不会将其添加到类路径中。目前,classpath 是所有未标记为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>

【问题讨论】:

  • 对我来说很有趣的是,这个问题的答案(这是正确的)是 -2,但这个东西只有 1K 的浏览量......

标签: java maven


【解决方案1】:

事实证明,当使用 exec:java 时,您可以在 Maven 中使用 2 个选项(这正是我想要的)。您可以为每个指定真/假:

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

所以,我将我的 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>
        ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多