小编Yas*_*shu的帖子

使用 exec-maven-plugin 进入 maven 阶段

我正在使用 exec-maven-plugin 执行 java 应用程序以在我的项目中生成一些代码:

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <configuration>
                <mainClass>com.codegenerator.CodeGeneratorApplication</mainClass>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

如果我在命令行“mvn exec:java”中执行,则效果很好,但现在我想将此代码生成附加到maven阶段“generate-resources”,因此我已将pom更改为:

       <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
                <execution>
                    <id>codegeneration</id>
                    <phase>generate-resources</phase>
                    <goals><goal>java</goal></goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.codegenerator.CodeGeneratorApplication</mainClass>
            </configuration>
        </plugin>
Run Code Online (Sandbox Code Playgroud)

但是突然当我执行“mvn exec:java”时,我收到如下错误:

[09:52:03.926] [] [] [com.codegenerator.CodeGeneratorApplication.main()] [WARN ] [AbstractApplicationContext.java:550] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'codeGeneratorApplication': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'cnp.application.acronym' in value "${cnp.application.acronym}"
[09:52:03.940] [] [] [com.codegenerator.CodeGeneratorApplication.main()] [INFO ] [DirectJDKLog.java:179] - Stopping …
Run Code Online (Sandbox Code Playgroud)

maven exec-maven-plugin

5
推荐指数
1
解决办法
5874
查看次数

JAVA_OPTS / CATALINA_OPTS参数不适用于docker-compose.yml

我使用以下Dockerfile构建映像:

FROM java:jre-alpine
WORKDIR /target
ADD /target/test.jar test.jar
RUN sh -c 'touch /test.jar'
ENTRYPOINT ["java","/target/test.jar"]
Run Code Online (Sandbox Code Playgroud)

在我的docker-compose.yml中,我指定了:

environment:
    - CATALINA_OPTS=-Xmx256m -Xms128m
Run Code Online (Sandbox Code Playgroud)

但是,当我使用docker stats检查内存使用情况时,我的docker容器消耗的内存比256m多得多。

但是如果我直接在Dockerfile中指定JVM参数(请参阅下文),那么docker stats会显示正确的数字:

FROM java:jre-alpine
WORKDIR /target
ADD /target/test.jar test.jar
RUN sh -c 'touch /test.jar'
ENTRYPOINT ["java","-Xmx512m","/target/test.jar"]
Run Code Online (Sandbox Code Playgroud)

你能给我一些提示吗?我不想在Dockerfile中对-Xmx参数进行硬编码。

docker docker-compose

3
推荐指数
1
解决办法
1万
查看次数

标签 统计

docker ×1

docker-compose ×1

exec-maven-plugin ×1

maven ×1