代码之家  ›  专栏  ›  技术社区  ›  Arne

如何在简单构建工具的子项目中共享lib文件夹

  •  5
  • Arne  · 技术社区  · 16 年前

    我有一个项目运行简单的构建工具作为构建工具。我的所有子项目都共享相同的依赖项,所以我希望它们使用相同的lib文件夹。我可以通过创建指向共享lib文件夹的符号链接来实现这一点,但我希望在sbt中找到一个允许我更改库路径的配置。

     override def dependencyPath = ".." / "lib"
    

    不起作用。路径中不允许使用“..”

    class Top(info:ProjectInfo) extends ParentProject(info){
        lazy val subproject = project("sub","Sub Project",info => SubProject(info,dependencyPath)
    
        class SubProject extends DefaultProject(info:ProjectInfo,libdir:Path){
            override def dependencyPath = libdir
        }
    }
    

    不起作用,DependencyPath是项目相对路径

    dependencyPath.absolutePath
    

    也不起作用,因为AbsolutePath使用斜杠创建字符串,并且不能使用斜杠创建路径。

    1 回复  |  直到 16 年前
        1
  •  3
  •   Moritz    16 年前

    lib

    class ParentProject(info: ProjectInfo) extends DefaultProject(info) { parent =>
    
      class SubProject(info: ProjectInfo) extends DefaultProject(info) {
        override def unmanagedClasspath =
          parent.unmanagedClasspath +++ super.unmanagedClasspath
      }
    
      val someProject = project("test", "Test", new SubProject(_))
    }
    

    ParentProject val dirJars = descendents("dir", "*.jar") SubProject

    推荐文章