OSGI-INF/serviceComponent.xml可以使用maven scr felix插件通过添加依赖项生成,如
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
<version>1.15.0</version>
<executions>
<execution>
<id>generate-scr-scrdescriptor</id>
<goals>
<goal>scr</goal>
</goals>
</execution>
</executions>
</plugin>
但对于格雷德尔来说,我无法生成。。我已尝试添加
buildscript {
dependencies {
classpath group:'be.jlr-home.gradle' , name:'scrPlugin', version:'0.1.0'
}}
apply plugin: 'java'
`apply plugin: 'eclipse'
apply plugin: 'maven'
apply plugin: 'osgi'
apply plugin: 'scr'
这是一个错误。捷豹路虎主页。找不到gradle。
我做错了什么???
基本上,我需要依赖项来添加gradle以生成servicecomponent。xml
@saviour23的解决方案对我不起作用
原来我们需要更改构建脚本,而gradle 1.6不起作用;在我升级到gradle 2.1后,它工作正常。
java代码:
import org.apache.felix.scr.annotations.*;
@Component
public class Bndtest {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
建筑格拉德尔:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'be.jlr-home.gradle:scrPlugin:0.1.3'
}
}
apply plugin: 'java'
apply plugin: 'osgi'
apply plugin: 'scr'
apply plugin: 'groovy'
apply plugin: 'maven'
sourceCompatibility = 1.6
targetCompatibility = 1.6
version = '0.0.1-SNAPSHOT'
group = 'be.jlrhome.gradle.scr'
description = 'Gradle scr example'
dependencies {
compile 'org.apache.felix:org.apache.felix.scr.annotations:1.9.8'
}
gradle将用正确的清单和OSGiXML包装一个jar
我已经解决了这个问题
将下面的行添加到gradle文件中,它就会工作。
ant.properties.src = 'src/main/java'
蚂蚁。财产。classes='build/classes/main'任务GENCR(依赖项:compileJava)
jar.dependsOn(genscr)
jar {
manifest {
// version = '1.0'
name = 'xxxxxxxxx'
instruction 'Service-Component', 'OSGI-INF/<PKGNAME>.<CLASSNAME>.xml'
}
dependencies {
......//All other dependencies........
compile 'org.apache.felix:org.apache.felix.scr.annotations:1.9.8'
compile 'org.apache.felix:org.apache.felix.scr.ds-annotations:1.2.4'
compile group: 'org.apache.felix', name: 'org.apache.felix.scr.ant', version: '1.110.'
}
源集。主要的compileClasspath=配置。编写
你的maven pom片段配置felix的scr的maven插件。你需要一个gradle插件用于scr注释处理。我不知道费利克斯有。bnd项目增加了gradle支持(2.4.0.M1包括bnd的gradle插件),bnd可以处理DS的注释(但可能不是Felix的注释)。
有人知道maven scr插件是否与java 10兼容吗? 我试图用java 10构建一个基于Equinox osgi的软件平台,我无法使用scr插件在目标文件夹中生成OSGI-INF文件夹结构(其中包含serviceComponents.xml)。 如果我在Java8中使用旧版本的scr插件(1.7.4),一切都可以正常工作。 如果我试图用java 10构建它,会发生以下错误。 [错误]无法执行
我遵循了这个教程(使用基于XML的Spring配置): http://codetutr.com/2013/03/24/simple-spring-mvc-web-application-using-gradle/ 当我运行Jetty时,它可以工作,我可以看到“你好,CodeTuter!”在。 然后我修改构建。gradle生成ear文件: ear文件的生成没有问题,但是当我使用本地JBoss-4.0
我正在尝试生成。jar,但是当它是使用Maven publishing生成的时候,它也生成了一个. pom文件。 问题是,我有另一个项目,当它实现这个依赖关系时,它以前只查找.jar,而现在它在所有其他项目中查找.pom,我想做的是,该项目停止使用“发布”任务生成.pom或在实现时停止寻找.pom文件以供其他项目使用。 下面是在 Artifactory 项目 A 中生成.jar的代码,其中项目 B
我正在研究将现有的OSGI/blueprint项目从Maven迁移到Gradle。在Maven中,Maven bundle插件会扫描上下文XML文件,以查找代码中可能不会出现的导入,但是我无法将其与Gradle OSGI插件一起使用。 例如,蓝图XML包含这样的导入 使用POM中的指令与maven-bundle-plugin... 然后生成MANFEST。MF将包含这样的导入 但是,使用以下bui
问题内容: 我想使用Gradle任务为 Java 项目生成Java类,类似于Android插件如何使用表示法创建,例如: 用例是我正在开发一个开源应用程序,该应用程序需要使用API密钥和机密。我拥有不致力于我的VCS 的密钥和秘密。 到目前为止,我有这个: 并且有效- 在指定位置生成该文件。但是它非常脆弱。明确命名软件包很容易出错。只要文件可以在其他软件包中生成(例如,在的根目录),只要能够使
我在项目中使用声明性服务注释和gradle。 我已经在我的组件类中指定了相应的注释(@组件等)。我还在gradle文件中添加了felix scr注释项目的依赖项。但是,当我构建项目时,组件xml文件不会生成,清单中的Service-Component标头也不会生成。MF文件。 我在gradle中使用“osgi”插件来生成osgi包。 gradle提供这种支持吗?在maven中,可以使用maven