小编Jos*_*son的帖子

当正则表达式与*对照组时,为什么Perl会变懒?

在perl中,*通常是贪婪的,除非你?在它之后添加一个.*然而,当用于对抗一个群体时,情况似乎不同.我的问题是"为什么".考虑这个例子:

my $text = 'f fjfj ff';
my (@matches) = $text =~ m/((?:fj)*)/;
print "@matches\n";
# --> ""
@matches = $text =~ m/((?:fj)+)/;
print "@matches\n";
# --> "fjfj"
Run Code Online (Sandbox Code Playgroud)

在第一场比赛中,perl懒洋洋地打印出任何东西,尽管它可以匹配某些东西,如第二场比赛所示.奇怪的是,*当组的内容只是.实际字符而不是实际字符时,行为是贪婪的:

@matches = $text =~ m/((?:..)*)/;
print "@matches\n";
# --> 'f fjfj f'
Run Code Online (Sandbox Code Playgroud)
  1. 注意:以上是在perl 5.12上测试的.
  2. 注意:我是否对内部组使用捕获或非捕获括号无关紧要.

regex perl

11
推荐指数
2
解决办法
242
查看次数

无法创建 GitLab CI/CD 下游管道 - 规则配置阻止添加作业

我正在使用 GitLab CI/CD,并且有一个管道,其中包含来自单独配置文件的作业,该管道似乎工作正常。它看起来像这样:

.gitlab-ci.yml

stages:
  - triggers
  - build
  - test
  - deploy

trigger_infra:
  stage: triggers
  trigger:
    include: src/infra/.gitlab-ci.yml
  rules:
    - changes:
      - src/infra/lib/spa-stack.ts
Run Code Online (Sandbox Code Playgroud)

src/infra/.gitlab-ci.yml

deploy_spa:
  stage: deploy
  script:
    - cd src/spa
Run Code Online (Sandbox Code Playgroud)

然而,我最近遇到了以下场景:

  1. 上推更改spa-stack.ts文件的代码;构建已触发并通过
  2. 向 master 创建合并请求;构建已触发并出现错误!
  3. 合并为master;构建已触发并通过

合并构建的错误消息是“无法创建下游管道,管道不会为选定的触发器运行。规则配置阻止将任何作业添加到管道中。”

我在这里缺少什么?下游作业没有规则配置,所以我觉得它应该总是运行,不问任何问题。

continuous-integration continuous-deployment gitlab gitlab-ci gitlab-ci-runner

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

gradle没有在mavenLocal repo中找到jar

我依赖于spring-beans; 4.0.0.RELEASE,我使用安装到我的mavenLocal缓存中

mvn install:install-file -Dfile=/Users/jric/Downloads/spring-beans-4.0.0.RELEASE.jar -DpomFile=/Users/jric/Downloads/spring-beans-4.0.0.RELEASE.pom,

但gradle-1.11未能找到依赖关系,没有太多解释.我找到了这个相关的堆栈跟踪:

11:26:35.432 [DEBUG] [org.gradle.api.internal.artifacts.ivyservice.ivyresolve.RepositoryChainDependencyResolver] Discarding resolve failure.
java.lang.NullPointerException
        at org.gradle.api.internal.artifacts.repositories.resolver.MavenLocalResolver.isOrphanedPom(MavenLocalResolver.java:49)
        at org.gradle.api.internal.artifacts.repositories.resolver.MavenLocalResolver.findMetaDataArtifact(MavenLocalResolver.java:42)
        at org.gradle.api.internal.artifacts.repositories.resolver.ExternalResourceResolver.resolveStaticDependency(ExternalResourceResolver.java:165)
        at org.gradle.api.internal.artifacts.repositories.resolver.MavenResolver.getDependency(MavenResolver.java:83)
        at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.LocalModuleVersionRepository.getLocalDependency(LocalModuleVersionRepository.java:44)
        at org.gradle.api.internal.artifacts.ivyservice.ivyresolve.memcache.CachedRepository.getLocalDependency(CachedRepository.java:67)
Run Code Online (Sandbox Code Playgroud)

以下是一些可能相关的数据:

SCML-JRichardson:share jric$ ls /Users/jric/.m2/repository/org/springframework/spring-beans/
4.0.0.RELEASE           maven-metadata-local.xml
SCML-JRichardson:share jric$ cat /Users/jric/.m2/repository/org/springframework/spring-beans/maven-metadata-local.xml 
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <groupId>org.springframework</groupId>
  <artifactId>spring-beans</artifactId>
  <versioning>
    <release>4.0.0.RELEASE</release>
    <versions>
      <version>4.0.0.RELEASE</version>
    </versions>
    <lastUpdated>20150307021047</lastUpdated>
  </versioning>
</metadata>
SCML-JRichardson:share jric$ ls /Users/jric/.m2/repository/org/springframework/spring-beans/4.0.0.RELEASE/
_maven.repositories     spring-beans-4.0.0.RELEASE.jar  spring-beans-4.0.0.RELEASE.pom
Run Code Online (Sandbox Code Playgroud)

spring ivy gradle maven

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