Maven Mule devkit错误:[错误]无法为Studio插件创建清单:尝试重新打开路径MANIFEST.MF的文件
运行此命令时:Maven Mule devkit错误:[错误]无法为Studio插件创建清单:尝试重新打开路径MANIFEST.MF的文件,maven,zip,package,mule,Maven,Zip,Package,Mule,运行此命令时: mvn clean package -DskipTests -Ddevkit.studio.package.skip=false 我得到这个错误: ... [INFO] Adding registry bootstrap entry for org.apache.solr.client.solrj.transformers.ORDEREnumTransformer as ORDEREnumTransformer [ERROR] Could not create MANIFEST
mvn clean package -DskipTests -Ddevkit.studio.package.skip=false
我得到这个错误:
...
[INFO] Adding registry bootstrap entry for org.apache.solr.client.solrj.transformers.ORDEREnumTransformer as ORDEREnumTransformer
[ERROR] Could not create MANIFEST for Studio plugin: Attempt to reopen a file for path MANIFEST.MF
[ERROR] error on execute: An error ocurred while the DevKit was generating Java code. Check the logs for further details.
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.772s
[INFO] Finished at: Tue May 13 20:48:10 PDT 2014
[INFO] Final Memory: 25M/81M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.mule.tools.devkit:mule-devkit-maven-plugin:3.3.0:generate-sources (default-generate-sources) on project mule-module-solr: An error ocurred while the DevKit was generating Java code. Check the logs for further details. -> [Help 1]
...
有些奇怪的事情:
如果我从mvn clean package-DskipTests-Ddevkit.studio.package.skip=false更改为mvn clean package-DskipTests-Ddevkit.studio.package.skip=true,但它不会完成其任务
我从一个正在工作的项目fork开始,在那里我可以使用…skip=false运行完整的命令。我只向src/main/java/org/mule/modules添加了一个额外的类,我相信它遵循了注释模式,并且更简单。还不能真正共享代码,添加了两个依赖项:httpclient和jackson数据绑定。它对这两个类进行所有检查,[INFO]搜索带有@Connector注释的类,然后[INFO]验证MyXyzConnector类
我考虑过的问题/事情:
我想-Ddevkit.studio.package.skip=false会告诉它生成一个.zip文件吗?
如果是,部署时是否需要这样做?
我想.zip文件需要一个清单?
有关清单文件的错误部分…尝试重新打开文件。。。听起来像是并发问题???
我在pom.xml中没有看到任何关于清单的提及,也没有看到正在工作的pom.xml
网上有人说,devkit的更高版本有问题,人们应该回到3.3.0版本,但我检查了一下,这就是我在pom.xml 3.3.0中使用的内容
不确定下一步要去哪里。显然,该错误是由项目中有多个连接器类引起的。可以有多个.java文件,但我认为只有1个可以有@Connector注释 我首先临时删除我的新类,然后创建一个最小的HelloWorldConnector.java连接器,如下所示。它还生成了相同的清单错误。当我将原始工作的SolrConnector.java重命名为SolrConnector.java-MOVED并使用-Ddevkit.studio.package.skip=false重新运行构建时,它工作正常并生成了target/UpdateSite.zip文件。我真的没有帮助的错误消息 HelloWorldConnector.java最小连接器测试:
package org.mule.modules;
import org.mule.api.ConnectionException;
import org.mule.api.ConnectionExceptionCode;
import org.mule.api.annotations.*;
import org.mule.api.annotations.display.FriendlyName;
import org.mule.api.annotations.display.Placement;
import org.mule.api.annotations.param.Default;
import org.mule.api.annotations.param.Optional;
import org.mule.api.annotations.param.Payload;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* Module for debugging
*
* {@sample.xml ../../../doc/solr-connector.xml.sample solr:config}
*
* @author Mark
*/
@Connector(name = "hello", schemaVersion = "1.0.0", friendlyName = "Hello", minMuleVersion = "3.3.0")
public class HelloWorldConnector {
/**
* Connect to the Solr Server using commons http client gateway.
*/
@Connect
public synchronized void connectHello() throws ConnectionException {
}
/**
* Disconnect from the server, nothing special needed at this time.
*/
@Disconnect
public synchronized void disconnectHello() {
}
/**
* Identify the connection.
*
* @return null, not used at this time.
*/
@ConnectionIdentifier
public String connectionIdentifierHello() {
return null;
}
/**
* Validate the connection by sending a ping request.
*
* @return true if the ping call succeeds, false otherwise.
*/
@ValidateConnection
public boolean isConnectedHello() {
return true;
}
}
确认-Ddevkit.studio.package.skip=false确实生成target/UpdateSite.zip,该文件被用作本地站点,通过studio中的“帮助”菜单安装软件,这不是对有经验的Mule开发人员的新闻,而是记录在案