Android java 模块中的 Studio Autovalue 并在 Android 模块中使用
Android Studio Autovalue in java module and using in Android module
使用 Android Studio 我有一个 Android 模块和一个 Java 模块。
在 Java 模块中,我想使用 AutoValue 生成不可变的 classes。
似乎一切正常(文件在 Java 模块中生成)但我无法访问 Android 项目中的那些文件。有什么建议吗?
app\build.gradle
apply plugin: 'com.android.application'
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':domain')
}
domain\build.gradle
plugins {
id 'net.ltgt.apt' version '0.6'
}
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.auto.value:auto-value:1.2'
apt 'com.google.auto.value:auto-value:1.2'
}
domain/MyLocation.java
import com.google.auto.value.AutoValue;
@AutoValue
abstract class MyLocation {
abstract String name();
@AutoValue.Builder
abstract static class Builder {
abstract Builder name(String _name);
abstract MyLocation build();
}
}
当我构建域模块(java 模块)时,我看到 'AutoValue_MyLocation' 文件在此处生成:
\domain\build\generated\source\apt\main\my\package\domain\AutoValue_MyLocation.java
但是,我无法在我的 Android 模块中的任何地方使用生成的 class。
没关系,通过查看生成的 class 我发现它不是 public,因此我无法在我的 Android 模块中访问它。
要修复它,只需像这样制作@AutoValue class public
@AutoValue
public abstract class MyLocation {
//
}
使用 Android Studio 我有一个 Android 模块和一个 Java 模块。 在 Java 模块中,我想使用 AutoValue 生成不可变的 classes。
似乎一切正常(文件在 Java 模块中生成)但我无法访问 Android 项目中的那些文件。有什么建议吗?
app\build.gradle
apply plugin: 'com.android.application'
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':domain')
}
domain\build.gradle
plugins {
id 'net.ltgt.apt' version '0.6'
}
apply plugin: 'java'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.auto.value:auto-value:1.2'
apt 'com.google.auto.value:auto-value:1.2'
}
domain/MyLocation.java
import com.google.auto.value.AutoValue;
@AutoValue
abstract class MyLocation {
abstract String name();
@AutoValue.Builder
abstract static class Builder {
abstract Builder name(String _name);
abstract MyLocation build();
}
}
当我构建域模块(java 模块)时,我看到 'AutoValue_MyLocation' 文件在此处生成:
\domain\build\generated\source\apt\main\my\package\domain\AutoValue_MyLocation.java
但是,我无法在我的 Android 模块中的任何地方使用生成的 class。
没关系,通过查看生成的 class 我发现它不是 public,因此我无法在我的 Android 模块中访问它。
要修复它,只需像这样制作@AutoValue class public
@AutoValue
public abstract class MyLocation {
//
}