小编bsa*_*ner的帖子

maven - 使用本地源而不是外部依赖

如果有人可以帮助我,这将节省我很多时间.

我维护一个开源库,它被推送到一个sonatype存储库.我每天对该库进行几次更改,并使用mvn deploy将其推送到1.0_snapshot构建.我们称之为project1

我在另一个使用该库的项目中不断工作,我们称之为project2.

现在,每当我对项目1或2进行更改时,我需要首先构建项目1并将其部署到repo,然后构建项目2,以便下载project1.jar的新副本

Project2将Project1作为pom.xml中的依赖项:

 <dependency>
            <groupId>com.group</groupId>
            <artifactId>project1</artifactId>
            <version>1.0-SNAPSHOT</version>

 </dependency>
Run Code Online (Sandbox Code Playgroud)

为了构建一个可以测试我所有更改的方法,我必须做这样的事情:

mvn  -f ./project1/pom.xml clean deploy  
mvn  -U -f ./project2/pom.xml clean package  
Run Code Online (Sandbox Code Playgroud)

这会将我的project1.jar上传到sonatype,然后project2下载新的快照并构建它.

这是我正在做的更大规模的简化图片,我的编译需要5分钟的上传和下载.

问题:使用maven的正确方法是什么,因此它知道在项目2的依赖项中使用project1的源代码?

java eclipse git maven

8
推荐指数
1
解决办法
7292
查看次数

Google App Engine数据存储单元使用Maven进行测试

试图让我的GAE 1.9.0项目的单元测试使用maven 3.2.1运行.数据存储相关测试失败:

java.util.ServiceConfigurationError: 
com.google.appengine.tools.development.LocalRpcService: 
Provider com.google.appengine.api.datastore.dev.LocalDatastoreV4Service 
could not be instantiated: java.lang.NoClassDefFoundError: 
com/google/apphosting/datastore/DatastoreV4$LookupRequestOrBuilder
Run Code Online (Sandbox Code Playgroud)

我明白这意味着我错过了依赖.似乎无法找到有关如何正确配置数据存储区测试的pom.xml的文档.我打电话时测试崩溃了

helper.setup()
Run Code Online (Sandbox Code Playgroud)

在帮手上:

public final LocalServiceTestHelper helper = new LocalServiceTestHelper(
            new LocalDatastoreServiceTestConfig(),
            new LocalTaskQueueTestConfig(),
            new LocalBlobstoreServiceTestConfig(),
            new LocalUserServiceTestConfig()));
Run Code Online (Sandbox Code Playgroud)

引用:

https://developers.google.com/appengine/docs/java/tools/maven#junit_dependencies_optional

https://developers.google.com/appengine/docs/java/tools/localunittesting#Java_Writing_Datastore_and_memcache_tests

我的pom.xml中的测试依赖项

       <dependency>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-testing</artifactId>
            <version>${appengine.target.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-api-stubs</artifactId>
            <version>${appengine.target.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.google.appengine</groupId>
            <artifactId>appengine-api-labs</artifactId>
            <version>${appengine.target.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>3.2.1.RELEASE</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>spring</groupId>
            <artifactId>spring-mock</artifactId>
            <version>1.0.2</version>
            <scope>test</scope>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪的其余部分:

at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:252)
        at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
        at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native …
Run Code Online (Sandbox Code Playgroud)

java google-app-engine unit-testing datanucleus

7
推荐指数
1
解决办法
1442
查看次数

具有 spring 自动装配依赖项的 aws lambda 函数

在 amazon aws lambda 中执行代码时,我的 @autowired spring 依赖项为空。如果没有加载上下文是有道理的,但我认为 SpringBeanAutowiringSupport 会有所帮助。如何在 amazon lambda 中正确注入依赖?

这是我的代码,它具有 null 自动装配字段,但其他工作正常(如果我用 new 替换自动装配:

@Component
public class ApplicationEventHandler {

@Autowired
private Foo foo;


         public ApplicationEventHandler() {
             logger.info("I'm sure the constructor is being called");
            SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
             //doesn't seem to help
         }

         public void deliveryFailedPermanentlyHandler(SNSEvent event, Context context) throws IOException {
             foo.doStuff() // causes NPE

         }
Run Code Online (Sandbox Code Playgroud)

提前致谢!

java spring amazon-s3 amazon-web-services aws-lambda

5
推荐指数
1
解决办法
7085
查看次数

使用2个有争议的OAUTH/OPEN ID域帐户使用Google GData API批量更新到电子表格

好的,周末就是这个 - 这是我最后一个星期天晚上的求助电话.

必须使用2 Legged OAUTH aproach的Google Marketplace应用需要将50K记录写入Google Doc电子表格.我能够创建,调整大小,重命名和将记录写入电子表格.单独写100行需要一分钟,所以我必须使用批量更新.无法让批量更新工作.下面的代码是我最好的尝试 - 我一直得到"令牌无效 - 令牌401无效".所有示例代码都是针对三条腿的oauth - 但我不能提示用户批准该应用程序,因为它是一个市场应用程序

使用openid和2LO找到批量电子表格更新的示例会很棒

      final String SCOPE = "https://spreadsheets.google.com/feeds/spreadsheets/private/full";
        SpreadsheetService spreadsheetService;
        String consumerKey = getInitParameter("consumer_key");
        String consumerSecret = getInitParameter("consumer_secret");
        GoogleOAuthParameters oauthParameters = new GoogleOAuthParameters();
        oauthParameters.setOAuthConsumerKey(consumerKey);
        oauthParameters.setOAuthConsumerSecret(consumerSecret);
        oauthParameters.setOAuthType(OAuthParameters.OAuthType.TWO_LEGGED_OAUTH);
        oauthParameters.setScope(SCOPE);
        OAuthSigner signer = new OAuthHmacSha1Signer();
        spreadsheetService = new SpreadsheetService("nimbits-com");
        String title = entity.getName().getValue();

        try {

            spreadsheetService.setOAuthCredentials(oauthParameters, signer);
            spreadsheetService.setProtocolVersion(SpreadsheetService.Versions.V3);
            SpreadsheetQuery query = new SpreadsheetQuery(new URL(SCOPE));
            query.addCustomParameter(new Query.CustomParameter("xoauth_requestor_id", user.getEmail().getValue()));
            query.setTitleQuery(title);
            SpreadsheetFeed feed =  spreadsheetService.query(query, SpreadsheetFeed.class);


//works fine up to this point, I …
Run Code Online (Sandbox Code Playgroud)

openid oauth gdata-api gdata google-apps-marketplace

3
推荐指数
1
解决办法
2311
查看次数

bash脚本增量编号,以零前缀结尾

给出一个包含这样内容的文件:

foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)

我需要一个bash脚本来读取这个文件增加最后一个数字,并考虑第二行的最后三位数作为xyx中z的空间增长到三位数(并用新数据覆盖原始文件:

输入1:

foo: 8.3.1
bar: 803001
Run Code Online (Sandbox Code Playgroud)

输出1:

 foo: 8.3.2
 bar: 803002
Run Code Online (Sandbox Code Playgroud)

输入2:

foo: 8.3.9
bar: 803009
Run Code Online (Sandbox Code Playgroud)

输出2:

 foo: 8.3.10
 bar: 803010
Run Code Online (Sandbox Code Playgroud)

输入3:

foo: 8.3.199
bar: 803199
Run Code Online (Sandbox Code Playgroud)

输出3:

 foo: 8.3.200
 bar: 803200
Run Code Online (Sandbox Code Playgroud)

我可以在2秒内在java中执行此操作,但我需要在shell脚本中执行此操作,否则我将面临构建团队无休止的嘲弄.

没有一些粗略的字符串拆分任何光滑的sep命令将是一个很大的帮助!

bash scripting awk

1
推荐指数
1
解决办法
143
查看次数