0

我在我的开发环境中使用 Eclipse m2e,并且我有一个 spring-boot maven 项目(在这种情况下可以被视为具有可运行主类的标准 maven jar 项目),它依赖于同一工作区中的另一个 maven 项目(工作区神器,我们称之为moduleB,spring-boot项目的兄弟),当我运行maven目标时clean packageappassembler:assemble目标可以省略,因为我配置了插件的执行部分,见下面的配置细节),生成的程序集在目标目录看起来不错,只是 repo 中缺少 moduleB 的 jar。根据日志,该插件似乎正在尝试复制moduleB中的类文件夹下的每个文件:

...
[INFO] Installing artifact ...
[INFO] Installing artifact /foo/bar/moduleB/target/classes to /foo/bar/repo/groupid/artifactid/0.0.1-SNAPSHOT/moduleB-0.0.1-SNAPSHOT.jar
[INFO] Installing ...
...

如何解决这个问题?在运行 assemble 之前,我是否必须将 moduleB 安装到 maven 本地存储库中?有什么办法可以绕过这一步,因为我不想用不稳定的工件弄乱存储库。

插件的PS配置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>appassembler-maven-plugin</artifactId>
    <version>1.10</version>
    <configuration>
        <configurationDirectory>conf</configurationDirectory>
        <configurationSourceDirectory>src/main/resources</configurationSourceDirectory>
        <copyConfigurationDirectory>true</copyConfigurationDirectory>
        <includeConfigurationDirectoryInClasspath>true</includeConfigurationDirectoryInClasspath>
        <assembleDirectory>${project.build.directory}/someApp</assembleDirectory>
        <extraJvmArguments>-Xms128m</extraJvmArguments>
        <logsDirectory>logs</logsDirectory>
        <repositoryLayout>default</repositoryLayout>
        <repositoryName>repo</repositoryName>
        <showConsoleWindow>true</showConsoleWindow>
        <platforms>
            <platform>windows</platform>
            <platform>unix</platform>
        </platforms>
        <binFileExtensions>
            <unix>.sh</unix>
        </binFileExtensions>
        <programs>
            <program>
                <mainClass>someClass</mainClass>
                <id>app</id>
                <platforms>
                    <platform>windows</platform>
                    <platform>unix</platform>
                </platforms>
            </program>
        </programs>
    </configuration>
    <executions>
        <execution>
            <id>assemble</id>
            <goals>
                <goal>assemble</goal>
            </goals>
        </execution>
    </executions>
</plugin>

更新#1:

我绕过了这个spring-boot:repackage目标,因为它将所有东西都封装在一个 jar 中,包括我希望在生产环境中方便地编辑的配置文件。这是我之前提出的问题:Alternatives to Distribution spring-boot application using maven (other than spring-boot:repackage)

4

0 回答 0