2014-11-05 11 views
2

Мой андроида структуру проекта (MyApp представляет собой модуль проекта Android-студия):загрузить оба проекта баночку & exernal баночку локальный репозиторий Maven

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

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

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 artifact в местный maven repo. Я добавил следующий код:

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 в местной мавена, его содержание отменяют внешней Lib баночке.

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

ответ

0

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

Так отпускает, чтобы загрузить спецификацию, и то, что мы получили здесь:

Свойства:

  • артефакты
  • конфигурации
  • репозиториев
  • uploadDescriptor

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

configurations { 
    externalJar 
} 

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

Возможно, попробуйте добавить пустую confirguration{} внутри uploadArchives {}

Смежные вопросы