Я использую maven invoker (не подключаемый модуль invoker) для запуска mvn archetype:generate
в java-приложении. и удаленный архетип имеет несколько китайских символов, таких как <description>海大物联微服务<description>
, которые не могут отображаться должным образом после создания локального проекта. Я нахожу platform encoding
это US-ASCII
, это проблема? Могу ли я установить это значение на UTF-8
?
Я пытался использовать System.setProperty("project.build.sourceEncoding","UTF-8");
, но это не работает.
это мой код
public class Generator {
public static void main(String[] args) {
System.setProperty("maven.home","/usr/local/Cellar/maven/3.6.0/libexec");
System.setProperty("project.build.sourceEncoding","UTF-8");
InvocationRequest request = new DefaultInvocationRequest();
request.setGoals(Collections.singletonList("archetype:generate"));
request.setBatchMode(Boolean.TRUE);
request.setDebug(Boolean.TRUE);
Path path = Paths.get("/Users/eric/Documents/Tmp/");
request.setBaseDirectory(path.toFile());
Properties properties = new Properties();
properties.setProperty("groupId", "com.maven");
properties.setProperty("artifactId", "test");
properties.setProperty("archetypeVersion", "1.1");
properties.setProperty("archetypeGroupId", "org.apache.maven.archetypes");
properties.setProperty("archetypeArtifactId", "maven-archetype-quickstart");
properties.setProperty("archetypeCatalog", "remote");
request.setProperties(properties);
Invoker invoker = new DefaultInvoker();
try {
InvocationResult result = invoker.execute(request);
} catch (MavenInvocationException e) {
e.printStackTrace();
}
}
}
это лог
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-25T02:41:47+08:00)
Maven home: /usr/local/Cellar/maven/3.6.0/libexec
Java version: 1.8.0_202, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_202.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: US-ASCII
OS name: "mac os x", version: "10.14.3", arch: "x86_64", family: "mac"