在准备罐子时包括maven包

时间:2016-10-11 13:54:18

标签: maven jar maven-assembly-plugin

我有以下项目结构。我想准备一个包含依赖项的jar,包括具有.java文件的不同包。

项目结构:

src/com/rev/automation/utilities
src/com/rev/automation/testdata
src/com/rev/automation/pages

主类:

org.openqa.selenium.remote

如何在maven中将“src / com / rev / automation”包包含到jar中?我正在使用下面的代码准备jar,但它不包括“src / com / rev / automation”中的包和文件。请建议

 <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-assembly-plugin</artifactId>
                <version>2.4.1</version>
                <configuration>
                    <!-- get all project dependencies -->
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                    <!-- MainClass in mainfest make a executable jar -->
                    <archive>
                        <manifest>
                            <mainClass>org.openqa.selenium.remote.RemoteWElement</mainClass>
                        </manifest>
                    </archive>

                </configuration>
                <executions>
                    <execution>
                        <id>make-assembly</id>
                        <!-- bind to the packaging phase -->
                        <phase>package</phase>
                        <goals>
                            <goal>single</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

1 个答案:

答案 0 :(得分:0)

使用Maven时,您需要关注Maven Standard Directory Structure 在您的情况下,创建一个像src/main/java这样的文件夹结构,并将所有代码放在java目录中。所以它现在应该看起来像src/main/java/com/rev/automation等 如果你遵循这个结构,那么你的包将被包含在jar中。

<强>更新

如果你绝对不想/不能做上面提到的事情,或者你可以使用Maven Build Helper插件。这将告诉maven将指定的目录包含为附加的源目录。

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.7</version>
    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>src</source>     // specify your directory here
                    ...
                </sources>
            </configuration>
        </execution>
    </executions>
</plugin>