是否有明确的第一个http://wiki.osgi.org/wiki/tooling_processes gradle插件用于OSGi?或者怎么和Gradle一起做?
OSGi容器有一个很大的老项目,许多项目在MANIFEST.MF中声明了复杂的关系。建筑很长。现在我们想把事情简化,采用Gradle。但首先,在不破坏东西的情况下,保持ant和gradle构建并行一段时间。然而,我看到的是gradle建议在build.gradle
中定义MANIFEST。https://docs.gradle.org/current/userguide/osgi_plugin.html
,这会造成大量的复制工作。
更新有近100个模块,模块之间和嵌套JAR之间有大量的依赖信息。MANIFEST.MF的平均长度约为50行(从20行到300行不等)。如何捆绑嵌套的jar是另一个问题。这个问题是关于使用现有的MANIFEST.MF文件。我看到的所有插件都使用bnd
,这与manifest first方法完全相反。
Gradle有一个osgimanifest
类,它是一个扩展的jar清单:
https://docs.gradle.org/current/javadoc/org/gradle/api/plugins/osgi/osgimanifest.html
StackOverflow上有一篇文章显示了类似的用法:
apply plugin: 'java'
apply plugin: 'osgi'
jar {
baseName = 'awesome'
manifest {
name = 'An Awesome Application'
symbolicName = 'com.example.awesome'
instruction 'Import-Package', 'org.springframework.orm', '*'
}
}
jar {
manifest {
def manif = "${resourcesDir}/MANIFEST.MF"
if (new File(manif).exists()) {
from file(manif)
}
else{
name = 'overwrittenSpecialOsgiName'
instruction 'Private-Package', 'org.mycomp.somepackage'
instruction 'Bundle-Vendor', 'MyCompany'
instruction 'Bundle-Description', 'Platform2: Metrics'
}
}
}
Gradle清单的文档可以在这里找到:https://docs.gradle.org/current/javadoc/org/gradle/api/java/archives/manifest.html
对于你的“另一个问题”:
还有额外的Gradle插件用于构建OSGI包,在某些情况下,包括来自其他OSGI包的依赖项。
jar {
manifest {
attributes 'Implementation-Title': 'Bundle Quickstart', // Will be added to manifest
'Import-Package': '*' // Will be overwritten by the instuctions below
}
}
bundle {
includeTransitiveDependencies = true
instructions << [
'Bundle-Activator': 'foo.bar.MyBundleActivator',
'Import-Package': 'foo.*',
'-sources': true
]
instruction 'Export-Package', '*' // Specify an individual instruction
instruction '-wab', ''
}
dependencies {
// all your usual dependencies
...
osgiRuntime( "your:dependency:1.0" ) {
transitive = false // transitive dependencies not included in OSGi runtime
}
}
问题内容: 我正在尝试从构建过程的build.gradle脚本asp艺术中运行Java类的静态main方法。我正在将Android Studio 1.0.2与Android / Gradle插件’com.android.tools.build:gradle:1.0.0’结合使用 我要在构建期间运行其主要方法的Java类位于… \ trunk-gradle \ myproject \ src \ m
所以现在当我通过命令行(windows)运行以下命令时: 我得到以下错误消息: 错误:找不到或加载主类DE.MyApp.Gradle.ConfigureCustomer null 在SourceSet容器上找不到属性“main 所以“sourcesets.main.runtimeClasspath”显然不存在于Android Studio的Gradle中。也许名字不一样。虽然我也尝试过这样设置类路
我正在将我们的构建从Ant转换为Gradle。我们的第一步是添加Gradle构建文件,这样我们就可以开始使用Gradle作为构建工具。这让我们可以使用现有的构建脚本使用Ant进行构建,并将其转换为随时间推移的渐变。我只想让Gradle调用现有的Ant构建文件。我们的项目都是NetBeans项目,都有build.xml和nbproject/build-implt.xml文件。有些项目需要NetBea
问题内容: 我在Groovy中有一个正在工作的小应用程序。目前,我可以在命令行上对其进行测试,但是我需要将其与Jenkins服务器集成。因此,我考虑过将其与Gradle集成在一起,以Jenkins可以读取的标准格式生成测试输出。(请考虑一下,我是Groovy,Gradle,Jenkins和JVM环境的新手)。 目前,我所有的测试都位于一个扩展的类中。我可以用一些bash脚本来运行它 在此布局中,有
导入一个Ant构建 你可以在你的gradle项目中通过ant.importBuild()来导入一个ant构建,当你导入了一个ant构建,每一个ant target都会被视为一个Gradle任务.这意味着你可以像操作,执行gradle任务一样操作,执行ant target 例 16.8.导入ant构建 build.gradle ant.importBuild 'build.xml' build.xm
我有一个使用eclipse创建的java动态web项目。我通常只是通过eclipse创建一个war文件,然后将其部署到tomcat。 现在我想用Gradle来构建我的项目并创建war文件。有没有eclipse插件可以做到这一点?如果没有,我如何在现有项目中使用gradle?我现有的项目结构是通过eclipse创建动态web项目时得到的,我不想更改它。 我尝试过阅读教程,并使用Gradle插件将其转