腾讯云区块链服务平台 TBaaS 合约打包说明(Java)

这篇说明Java语言合约的打包流程,包括配置本地仓库、添加Maven插件与依赖、下载依赖及打包命令,帮助用户完成Fabric链码的构建与部署。 配置仓库与插件:在pom.xml中添加本地仓库和maven-shade-plugin插件,指定版本与主类。 添加依赖与下载:引入fabric-chaincode-java相关依赖,使用mvn命令将依赖下载到本地repository目录。 打包命令:在合约根目录执行zip -r。

相关产品
腾讯云区块链服务平台 TBaaS 产品页,含版本规格、价格与购买入口。

Java 语言合约示例包请参见 fabric-contract-java。

一、Java 合约打包

1. 在 pom.xml 文件中添加如下所示的本地仓库配置:

<repositories>
<repository>
<id>my-local-repo</id>
<url>file://${project.basedir}/repository</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</snapshots>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>ignore</checksumPolicy>
</releases>
</repository>
</repositories>

2. 在 pom.xml 文件中添加如下所示的 maven 插件配置,注意使用指定的版本。

<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<finalName>chaincode</finalName>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>chaincode.example.SimpleChaincode</mainClass>
</transformer>
</transformers>
<filters>
<filter>
<!– filter out signature files from signed dependencies, else repackaging
fails with security ex –>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

3. 在 pom.xml 中添加相关依赖,示例如下:

<dependencies>
<dependency>
<groupId>org.hyperledger.fabric-chaincode-java</groupId>
<artifactId>fabric-chaincode-protos</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>org.hyperledger.fabric-chaincode-java</groupId>
<artifactId>fabric-chaincode-shim</artifactId>
<version>2.3.1</version>
<exclusions>
<exclusion>
<groupId>com.github.everit-org.json-schema</groupId>
<artifactId>org.everit.json.schema</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.16</version>
</dependency>
</dependencies>

4. 使用如下命令将合约依赖下载到 repository 目录中。

mvn dependency:copy-dependencies -DoutputDirectory=repository -Dmdep.useRepositoryLayout=True -Dmdep.copyPom=True

5. 在合约根目录中使用zip -r xxx.zip *命令将合约进行打包。

赞 (0)
上一篇 4天前
下一篇 4天前