Maven Invoker не может установить кодировку - PullRequest
1 голос
/ 29 марта 2019

Я использую 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...