2017-09-30 62 views
5

modülleriyle java 9 ile kod üretmiyor immutables-library'u kullanarak, module-info.java projeye Immutables*.java ekleyene kadar java 9 ile iyi çalışıyor. IntelliJ önerdiği gibi ben eklemek modül-bilgi içinImmutables,

'değeri gerektirir.' Ne eksik, immutables-library sorunu veya ek açıklama işleme bulmak için javac için ayarlamak için gereken başka bir şey var.

I hedef/kaynak = 9 için yapılandırılmış maven-compiler-plugin:3.7.0 ile maven kullanıyorum.

+0

Üzerinde çalıştığınız projenin bir örneğini paylaşır mısınız? Yapı vb. Sırasında gördüğünüz herhangi bir hata günlüğü nedir? – nullpointer

+0

Tabii https://github.com/LarsKrogJensen/jigsaw-immutables –

+0

Orada sırasında derleme herhangi bir hata, ama ben lib gibi görünüyor modules-info.java –

cevap

5

sahip sorun böyle yapılmalıdır bir açıklama işlemcisi olarak Immutable kısmını yapılandırılmamış olmasıdır:

basitçe kodlamayı tanımlayarak sabitlenebilir kodlaması hakkında ipuçları Apart
<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>example</groupId> 
    <artifactId>jigsaw</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <dependencies> 
     <dependency> 
      <groupId>org.immutables</groupId> 
      <artifactId>value</artifactId> 
      <version>2.5.6</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.7.0</version> 
      <configuration> 
      <source>9</source> 
      <target>9</target> 
      <annotationProcessorPaths> 
       <dependency> 
        <groupId>org.immutables</groupId> 
        <artifactId>value</artifactId> 
        <version>2.5.6</version> 
       </dependency> 
      </annotationProcessorPaths> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
</project> 

böyle:

. 
├── pom.xml 
├── src 
│   └── main 
│    └── java 
│     ├── example 
│     │   └── Some.java 
│     └── module-info.java 
└── target 
    ├── classes 
    │   ├── example 
    │   │   ├── ImmutableSome$1.class 
    │   │   ├── ImmutableSome$Builder.class 
    │   │   ├── ImmutableSome.class 
    │   │   └── Some.class 
    │   └── module-info.class 
    ├── generated-sources 
    │   └── annotations 
    │    └── example 
    │     └── ImmutableSome.java 
    ├── jigsaw-1.0-SNAPSHOT.jar 
    ├── maven-archiver 
    │   └── pom.properties 
    └── maven-status 
     └── maven-compiler-plugin 
      └── compile 
       └── default-compile 
        ├── createdFiles.lst 
        └── inputFiles.lst 
: yukarıdaki yapılandırma yoluyla derlerseniz

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>example</groupId> 
    <artifactId>jigsaw</artifactId> 
    <version>1.0-SNAPSHOT</version> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>org.immutables</groupId> 
      <artifactId>value</artifactId> 
      <version>2.5.6</version> 
      <scope>provided</scope> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.7.0</version> 
      <configuration> 
      <source>9</source> 
      <target>9</target> 
      <annotationProcessorPaths> 
       <dependency> 
        <groupId>org.immutables</groupId> 
        <artifactId>value</artifactId> 
        <version>2.5.6</version> 
       </dependency> 
      </annotationProcessorPaths> 
      </configuration> 
     </plugin> 
     </plugins> 
    </build> 
</project> 

size gereken her şeyi alacak

+0

Thanx bir sürü - şimdi maven kaynağı üretir. Maven'e bu şekilde asla söylememem gerekse de - ders notunu her zaman sınıf yolundan çıkardı. Sanırım bu geliştirilecek. Küçük bir sorun, Intellij'in bu yapılandırmayı almamasıdır. Eğer JDK 9 ile çalışıyorsa –

+0

ben bu tekrar kontrol var – khmarbaise

+5

... hakkında emin değilim, farklı bir story.But olabilir. Ve sen haklısın. JDK 8 ile JDK 9 arasında bir davranış değişikliği var ... Bir [sayı] 'da dosyalandı (https://issues.apache.org/jira/browse/MCOMPILER-310). – khmarbaise