2017-03-27 84 views
1

我从Maven下载了一个库,但需要在其中的一个文件中重写单个字符串,所以我进入了IntelliJ的Maven Projects选项卡,并手动从其pom.xml添加了该项目档案在C:\Users\mnxe\Documents\parse4j-master\pom.xml。现在我可以从我的项目文件夹结构中访问.java文件:本地更改覆盖Maven依赖关系时发生冲突

enter image description here

我没有变化,与我所需要的URL更换API_ENDPOINT(仅供参考,https://api.parse.com已不存在):

package org.parse4j; 

public class ParseConstants { 

    public static final String API_ENDPOINT = "https://parseapi.back4app.com"; 
    public static final String API_VERSION = "1"; 

    public static final String HEADER_CONTENT_TYPE = "Content-Type"; 
    public static final String HEADER_APPLICATION_ID = "X-Parse-Application-Id"; 
    public static final String HEADER_REST_API_KEY = "X-Parse-REST-API-Key"; 
    public static final String HEADER_MASTER_KEY = "X-Parse-Master-Key"; 
    public static final String HEADER_SESSION_TOKEN = "X-Parse-Session-Token"; 

    public static final String CONTENT_TYPE_JSON = "application/json"; 

    public static final String FIELD_OBJECT_ID = "objectId"; 
    public static final String FIELD_CREATED_AT = "createdAt"; 
    public static final String FIELD_UPDATED_AT = "updatedAt"; 
    public static final String FIELD_SESSION_TOKEN = "sessionToken"; 


    public static int MAX_PARSE_FILE_SIZE = 10485760; 

} 

我的项目现在应该工作,但我发现了异常:

3306 [main] ERROR org.parse4j.ParseObject - Request failed. 
Exception in thread "main" org.json.JSONException: A JSONObject text must begin with '{' at 1 [character 2 line 1] 
    at org.json.JSONTokener.syntaxError(JSONTokener.java:433) 
    at org.json.JSONObject.<init>(JSONObject.java:194) 
    at org.json.JSONObject.<init>(JSONObject.java:321) 
    at org.parse4j.command.ParseResponse.getJsonObject(ParseResponse.java:83) 
    at org.parse4j.command.ParseResponse.getException(ParseResponse.java:71) 
    at org.parse4j.ParseObject.save(ParseObject.java:492) 
    at tmt.main(tmt.java:21) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

我有一种感觉,它仍然呼吁旧的依赖在我的主要pom.xml中:

 <dependency> 
      <groupId>com.github.thiagolocatelli</groupId> 
      <artifactId>parse4j</artifactId> 
      <version>1.4</version> 
     </dependency> 

我应该删除此依赖关系吗?如果是这样,那么将新的本地修改后的类导入到我的应用程序中的语法是什么?

回答

1

以下是我建议的工作流程:

  1. 转到您改变了一个线项目。
  2. 将pom.xml中的版本更改为类似“1.4-fixed”的版本。
  3. 用“干净安装”调用Maven(在“被盗”项目上)。现在,如果你没有错误,1.4版本的jar应该放在你的Local Repository(.m2/repository)中。
  4. 在旧项目中引用版本“1.4-fixed”(而不是1.4)并构建该项目。

当然,现在版本1.4只存在于您自己的机器上(除非您将其部署到某个公司的Nexus/Artifactory)。

+0

我会试试看。谢谢。 – santafebound

+0

您的解决方案做了我打算做的事情,但它并没有最终解决我的问题,所以我将它标记为正确无论如何。我能够使用新的本地修改回购。我现在得到了一个不同的异常:''2699 [main]错误org.parse4j.ParseObject - 请求失败.''我的问题在这里继续为有兴趣的任何人:http://stackoverflow.com/questions/43063719/ parse4j-2380-主错误-ORG-parse4j-的parseObject请求失败的 – santafebound