所以我收到了这个错误:
[ERROR] Failed to execute goal io.apigee.build-tools.enterprise4g:apigee-edge-maven-plugin:1.0.1:deploy (default-cli) on project reporting: MojoExecutionException: com.google.api.client.http.HttpResponseException: 400 Bad Request
[ERROR] {
[ERROR] "code" : "messaging.config.beans.InvalidResourceURLRef",
[ERROR] "message" : "Invalid resource url ref jsc://js_validateReportingWriteScope3.js in policy js_validateReportingWriteScope3 in cambiahealth-nonprod",
[ERROR] "contexts" : [ ],
[ERROR] "cause" : {
[ERROR] "code" : "messaging.config.beans.ResourceDoesNotExist",
[ERROR] "message" : "Resource with name js_validateReportingWriteScope3.js and type jsc does not exist",
该文件肯定存在。我试过了:
我的同事可以进行部署,但是他们在Mac上。我在Windows上。
失败的命令是:
mvn apigee-enterprise:deploy -P$environment -Dusername=$username -Dpassword=$password
有效的命令(但我们不想使用,因为它擦除当前部署并替换它,丢失历史信息):
mvn apigee-enterprise:deploy -P$environment -Dapigee.options=clean -Dusername=$username -Dpassword=$password
我该怎么办?这个错误对我没有意义。 .js文件肯定存在。
答案 0 :(得分:1)
将下面的XML块放在父POM中解决了当前的问题;然而,请注意它已经为我创造了一个副作用:它打破了包含来自父母POM和普通"的其他Apigee政策。代理人在当前的代理人之外。因此,这只是部分解决方案。我的最终解决方案是转换为Mac,因为这个问题只发生在Windows计算机上。
<!-- copy the full apiproxy folder to target folder -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<!--this is important -->
<overwrite>true</overwrite>
<!--target -->
<outputDirectory>${target.root.dir}/apiproxy</outputDirectory>
<resources>
<resource>
<!--source -->
<directory>${project.root.dir}/apiproxy</directory>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>