How can one go about setting up a local maven repo.
CẢNH BÁO: các công thức sau đây hoạt động, nhưng có lẽ có thể sử dụng cải tiến, như tôi xa từ một chuyên gia về Maven. Tôi đã đưa ra phương pháp này vào năm ngoái để sử dụng với các thư viện CWAC của tôi.
BướC# 1: Thêm classpath 'com.github.dcendents:android-maven-plugin:1.0'
vào khối buildscript
dependencies
trong dự án thư viện build.gradle
tệp của bạn. Đồng thời thêm các câu hỏi version
và group
để cung cấp thông tin đó về AAR của bạn.
BướC# 2: Sử dụng gradle install
để biên dịch AAR và cài đặt AAR trong kho lưu trữ Maven cục bộ mặc định.
BướC#: Thông thường, bạn sẽ thêm mavenLocal()
vào khối dependencies
của dự án ứng dụng của bạn để nhận AAR qua ID tạo tác của nó. Điều đó có thể hoạt động trở lại, mặc dù nó đã bị hỏng một chút. Thay vào đó, hãy sử dụng maven { url "${System.env.HOME}/.m2/repository" }
làm cách giải quyết ngắn hạn.
Vì vậy, ví dụ, thư viện dự án build.gradle
tập tin của bạn có thể chứa:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
classpath 'com.github.dcendents:android-maven-plugin:1.0'
}
}
apply plugin: 'android-library'
apply plugin: 'android-maven'
version '0.4.0'
group 'some.likely.group.name.goes.here'
repositories {
mavenCentral()
}
dependencies {
compile 'com.squareup.picasso:picasso:2.2.0'
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
// as normal
}
Bạn sẽ sử dụng gradle install
công bố JAR để repo Maven địa phương của bạn. dự án ứng dụng của bạn sau đó sẽ có những thứ sau trong build.gradle
của nó:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
maven { url "${System.env.HOME}/.m2/repository" } // mavenLocal()
}
dependencies {
compile 'some.likely.group.name.goes.here:name-of-library:0.4.0'
}
android {
// as normal
}
nơi bạn thay thế:
some.likely.group.name.goes.here
với một cái gì đó
0.4.0
với một số phiên bản trong định dạng XYZ
name-of-library
sẽ là tên thư mục chứa dự án thư viện Android (ví dụ: presentation
hoặc foo
)
Bạn sử dụng AAR trong dự án khác như thế nào? – CommonsWare
Như thế này: 'kho { flatDir { 'libs' dirs} mavenCentral() } ' và sau đó bao gồm cả họ bằng cách sử dụng thông thường định dạng groupId – redDragonzz
Đây được coi là hành vi dự kiến Tôi cho rằng: https: // groups.google.com/forum/#!topic/adt-dev/0ZAP8AVUZVw! Tôi nghĩ rằng tôi phải tải về các picasso jar và sau đó gradle sẽ bao gồm nó tự động, nếu không nó không. Sẽ cho nó một thử và gửi một câu trả lời – redDragonzz