загрузите банку проекта и внешнюю банку в локальный репозиторий maven

Моя структура проекта Android (MyApp - это модуль проекта Android Studio):

MyApp
  - external/
      mylib.jar
  - src/
  - res/
  ...
  build.gradle

Сначала у меня есть внешний jar, и я хочу загрузить его в свой локальный репозиторий maven, моя сборка gradle выглядит так:

configurations {
    externalJar
}

artifacts {

    externalJar file: file('external/mylib.jar')
    artifact = 'exernalLib'
    version = '1.1.0'
}

uploadExternalJar {
    repositories {
        mavenDeployer {
            repository(url: "file://${System.properties['user.home']}/.m2/repository")
        }
    }
}

Оно работает!

Затем я также хотел бы загрузить свой артефакт jar проекта в локальный репозиторий maven. Я добавил следующий код:

group = 'com.my.app'
uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: "file://${System.properties['user.home']}/.m2/repository")
            pom.project {
                version  '1.2.1'
                artifactId  'MyApp'
                packaging 'jar'
            }

        }
    }
} 

когда я запускаю ./gradlew build , выполняются обе задачи, но когда я проверяю MyApp-1.2.1.jar в локальном maven, его содержимое переопределяется внешним lib jar.

Я не уверен, что я сделал неправильно. Но как я мог тогда загрузить как внешнюю банку, так и банку моего проекта в локальный maven?


person user842225    schedule 05.11.2014    source источник


Ответы (1)


Я совсем не уверен, но я могу попытаться угадать, что только что произошло. задача uploadArchives {...} в соответствии со спецификацией gradle имеет тип: (type: Upload)

Итак, давайте перейдем к загрузке спецификации, и что мы здесь получили:

Характеристики:

  • артефакты
  • конфигурация
  • хранилища
  • дескриптор загрузки

и я предполагаю, что у вас есть:

configurations {
    externalJar
}

выше uploadArchives в качестве глобальной конфигурации, поэтому uploadArchives использует ваш externalJar в качестве конфигурации для MyApp-1.2.1.jar.

Может быть, попробуйте добавить пустой confirguration{} внутрь uploadArchives {}

person SuperAndrew    schedule 12.11.2014