我正在使用 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) 我使用以下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参数进行硬编码。