ProjectName
\- lib
| \- lib
| \- armeabi
| \- libNativeFirst.so
| \- libNativeSecond.so
\- src
\- main
\- java
\- com.package.sdk
\- PackageSDK.java
我设置了build.gradle
文件,如下所示:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
}
task jar(type: Jar) {
from android.sourceSets.main.allSource
}
当我在项目目录中运行gradlew clean Jar
时,将在projectname\build\libs
中创建一个名为projectname.Jar
的Jar文件。其结构如下:
ProjectName.jar
\- lib
| \- armeabi
| \- libNativeFirst.so
| \- libNativeSecond.so
\- com
\- package
\- sdk
\- PackageSDK.java
在执行jar
任务时,我希望包含已编译的packagesdk.class
文件,而不是packagesdk.java
文件。我可以改变什么来实现这一点?
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
output {
classesDir 'build/classes'
resourcesDir 'build/javaResources'
}
}
}
task jar(type: Jar) {
from android.sourceSets.main.output
}
Gradle现在给我的输出是:
在源集Main上找不到参数[build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure9_closure10_closure13@138532dc]的方法output()。
注:答案经过编辑。请参阅下文07/28/2014更新。
这是我最终想出的一个解决方案。可能有更好的办法可用,但我还没有找到。
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
defaultConfig {
minSdkVersion 10
targetSdkVersion 18
}
sourceSets {
main {
java {
srcDir 'src/main/java'
}
resources {
srcDir 'src/../lib'
}
}
}
}
task clearJar(type: Delete) {
delete 'build/libs/ProjectName.jar'
}
task makeJar(type: Copy) {
from('build/bundles/release/')
into('build/libs/')
include('classes.jar')
rename ('classes.jar', 'ProjectName.jar')
}
makeJar.dependsOn(clearJar, build)
运行gradlew makejar
将在build/libs
目录中创建一个projectname.jar
。这个罐子的结构是这样的:
ProjectName.jar
\- lib
| \- armeabi
| \- libNativeFirst.so
| \- libNativeSecond.so
\- com
\- package
\- sdk
\- PackageSDK.class
task clearJar(type: Delete) {
delete 'build/outputs/ProjectName.jar'
}
task makeJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('build/outputs/')
include('classes.jar')
rename ('classes.jar', 'ProjectName.jar')
}
问题内容: 我正在使用gradle构建的开源项目。我想生成一个(project)-sources.jar文件,可以将其加载到我的IDE(IntelliJ IDEA)中并通过该项目进行调试。我知道如何生成文件(如果可以生成的话)。 我浏览了该项目可用的gradle任务,但没有一个可以生成source jar文件。 为该项目生成源jar文件的最简单方法是什么? 将源添加到包含已编译的类文件的jar文件
我正在与一个开源项目一起工作,这个项目是用Gradle构建的。我想生成一个(project)-sources.jar文件,我可以将该文件加载到我的IDE(IntelliJ IDEA)中,并通过项目进行调试。我知道如何加载文件,如果我可以生成它。 我查看了该项目的可用gradle任务,没有一个生成sources jar文件。 为这个项目生成sources jar文件的最简单的方法是什么? 将源代码添
你知道我该怎么做吗?
我使用以下步骤文件创建了gradle项目的jar库(即没有主类)- 这是在没有主类的情况下构建jar的正确方法吗?因为当我尝试将其导入另一个Gradle项目时,我会出错。假设jar文件名为test。罐子 我将jar添加到src/libs/test.jar 内置。我添加了gradle依赖项实现文件树(dir:'libs',include:['*.jar']) 右键单击测试。震击器- 文件- 仍在获取
我有一个多模块Spring-Boot应用程序的问题。 我有一个用于服务的模块,核心模块。和一个用于视图相关类的模块,即Web-Module。这两个都在父模块中,在父模块中我添加了依赖项,如“spring-boot-starter”,这两个模块都可以使用。 现在谈到问题: 我希望使用嵌入式Tomcat运行Web模块,并将核心模块作为Web模块中的依赖项。 在其他Spring项目中,我只需要包含mav