dart 路径依赖项不起作用(跨多个项目)

dart path dependencies not working (across multiple projects)

我试图在 dart 中创建一个"库"类型的项目,然后从另一个项目中"依赖"该库(全部使用 yaml 文件的路径依赖功能)。我知道如果我托管我的库或使用 GIT,我可能能够让依赖项工作,但我也不想这样做,因为我觉得基于纯文件系统的依赖项应该是一个"不"脑筋急转弯"。

所以,不用多说,这是我的情况。我有一个非常简单的基于 web_ui 的 dart 库/项目,其中包含两个文件:

esrvdartui.dart

---------------

library esrvdartui;



import 'dart:html';

import 'package:web_ui/web_ui.dart';



part 'esrvradiobutton.dart';







esrvradiobutton.dart

--------------------

part of esrvdartui;



class ESrvRadioButton extends RadioButtonInputElement

{

 ESrvRadioButton ()

 {

 }

}pubspec.yaml

------------

name: ExampleForm

description: A sample WebUI application

dependencies:

 js: any

 browser: any

 web_ui: any

 esrvdartui:

  path: ../esrvdartuilibrary mylibrary;



import 'dart:json';



part 'src/libraryfile1.dart';part of hix_lib;

.

.

.

然后我创建了另一个非常小的/简单的基于 web_ui 的项目,名为"ExampleForm",它想使用我上面的 esrvdartui 项目。这两个项目都存在于相同的目录结构中。我的 ExampleForm 项目包含以下 yaml 文件:

esrvdartui.dart

---------------

library esrvdartui;



import 'dart:html';

import 'package:web_ui/web_ui.dart';



part 'esrvradiobutton.dart';







esrvradiobutton.dart

--------------------

part of esrvdartui;



class ESrvRadioButton extends RadioButtonInputElement

{

 ESrvRadioButton ()

 {

 }

}pubspec.yaml

------------

name: ExampleForm

description: A sample WebUI application

dependencies:

 js: any

 browser: any

 web_ui: any

 esrvdartui:

  path: ../esrvdartuilibrary mylibrary;



import 'dart:json';



part 'src/libraryfile1.dart';part of hix_lib;

.

.

.

无论我在上面的 yaml 文件中将路径设置为什么,我都不会看到我的 ExampleForm 项目下面的 web\\\\\\\\packages 目录被我的来自 esrvdartui 项目的文件更新,因此,我无法使用使用基于文件的依赖方法在我的库中的文件,因为我的 ExampleForm 项目的构建失败。

"Pub install" 不会抱怨上面的路径,当我使用绝对路径时它不会抱怨,所以我知道 "Pub install" 看到我的依赖项目。它只是不会为我复制那些该死的文件。

有什么想法吗?

我的 ExampleForm 的 pubspec.lock 文件是:

# 由 pub 生成

# 见 http://pub.dartlang.org/doc/glossary.html#lockfile

{"packages":{"logging":{"version":"0.5.0 1","source":"hosted","description":" logging"},"source_maps":{"version":"0.5.0 1","source":"hosted","description":"source_maps" },"unittest":{"version":"0.5.0 1","source":"hosted","description":"unittest"},"pathos":{"version":"0.5.0 1","source":"hosted","description":"pathos"},"analyzer_experimental":{"version":"0.4.7 1","source":"hosted","description":"analyzer_experimental"},"web_ui":{ "version":"0.4.6 1","source":"hosted","description":"web_ui"},"js":{"version ":"0.0.21","source":"hosted","description":"js"},"csslib":{"version":"0.4.3","source":"hosted","description":"csslib"},"esrvdartui":{"version":"0.0.0 ","source":"path","description":{"relative":false,"path":"C:/Users/Jason/dart/esrvdartui" }},"html5lib":{"version":"0.4.3","source":"hosted","description":"html5lib"},"args":{"版本":"0.5.0 1", "source":"hosted","description":"args"},"browser":{"version":"0.5.0 1","source ":"hosted","description":"browser"},"meta":{"version":"0.5.0 1","source": "托管","描述":"元"}}}

我的 esrvdartui 的 pubspec.lock 文件是:

由酒馆生成

见 http://pub.dartlang.org/doc/glossary.html#lockfile

{"packages":{"meta":"version":"0.5.0 1","source":"hosted","description": "meta"},"browser":{"version":"0.5.0 1","source":"hosted","description":"browser "},"args":{"version":"0.5.0 1","source":"hosted","description":"args"} ,"html5lib":{"version":"0.4.3","source":"hosted","description":"html5lib"},"analyzer_experimental ":{"version":"0.5.0 1","source":"hosted","description":"analyzer_experimental"},"csslib": {"version":"0.4.3","source":"hosted","description":"csslib"},"web_ui":{"version ":"0.4.6 1","source":"hosted","description":"web_ui"},"pathos":{"version": "0.5.0 1","source":"hosted","description":"pathos"},"js":{"version":"0.0 .22","source":"hosted","description":"js"},"source_maps":{"version":"0.5.0 1","source":"hosted","description":"source_maps"},"unittest":{"version":"0.5.0 1","源":"托管","描述":"unittest"},"loggi ng":{"version":"0.5.0 1","source":"hosted","description":"logging"}}}


我终于得到了这个工作,但在我的一生中,我无法在任何地方找到这个文档。您所要做的就是在 Dart IDE 中创建一个项目。然后,在该项目中创建一个名为 "lib" 的顶级文件夹(清除除顶级 "packages" 文件夹之外的所有其他目录)。现在,创建您的主库的 .dart 文件。我们称之为"mylibrary.dart"。该文件的内容如下所示:

mylibrary.dart

esrvdartui.dart

---------------

library esrvdartui;



import 'dart:html';

import 'package:web_ui/web_ui.dart';



part 'esrvradiobutton.dart';







esrvradiobutton.dart

--------------------

part of esrvdartui;



class ESrvRadioButton extends RadioButtonInputElement

{

 ESrvRadioButton ()

 {

 }

}pubspec.yaml

------------

name: ExampleForm

description: A sample WebUI application

dependencies:

 js: any

 browser: any

 web_ui: any

 esrvdartui:

  path: ../esrvdartuilibrary mylibrary;



import 'dart:json';



part 'src/libraryfile1.dart';part of hix_lib;

.

.

.

现在,在 "lib" 下创建一个子目录,将库的源文件放入其中。这实际上可以命名为任何东西,但我选择将其命名为"src"。将您的 libraryfile1.dart 文件放在那里,它应该看起来像这样:

src/libraryfile1.dart

esrvdartui.dart

---------------

library esrvdartui;



import 'dart:html';

import 'package:web_ui/web_ui.dart';



part 'esrvradiobutton.dart';







esrvradiobutton.dart

--------------------

part of esrvdartui;



class ESrvRadioButton extends RadioButtonInputElement

{

 ESrvRadioButton ()

 {

 }

}pubspec.yaml

------------

name: ExampleForm

description: A sample WebUI application

dependencies:

 js: any

 browser: any

 web_ui: any

 esrvdartui:

  path: ../esrvdartuilibrary mylibrary;



import 'dart:json';



part 'src/libraryfile1.dart';part of hix_lib;

.

.

.

所有的导入语句都应该放在你的顶级主库文件中:mylibrary.dart.

现在,在您希望在其中使用此基于文件的库的项目中,您必须将"mylibrary"添加到项目的 pubspec.yaml 文件中并选择:"Source: path"。在我的机器上,因为所有项目都在同一个目录中,所以我的路径只是指向:../mylibrary

这就是所有要做的事情!!!!!!


相关推荐

  • Spring部署设置openshift

    Springdeploymentsettingsopenshift我有一个问题让我抓狂了三天。我根据OpenShift帐户上的教程部署了spring-eap6-quickstart代码。我已配置调试选项,并且已将Eclipse工作区与OpehShift服务器同步-服务器上的一切工作正常,但在Eclipse中出现无法消除的错误。我有这个错误:cvc-complex-type.2.4.a:Invali…
    2025-04-161
  • 检查Java中正则表达式中模式的第n次出现

    CheckfornthoccurrenceofpatterninregularexpressioninJava本问题已经有最佳答案,请猛点这里访问。我想使用Java正则表达式检查输入字符串中特定模式的第n次出现。你能建议怎么做吗?这应该可以工作:MatchResultfindNthOccurance(intn,Patternp,CharSequencesrc){Matcherm=p.matcher…
    2025-04-161
  • 如何让 JTable 停留在已编辑的单元格上

    HowtohaveJTablestayingontheeditedcell如果有人编辑JTable的单元格内容并按Enter,则内容会被修改并且表格选择会移动到下一行。是否可以禁止JTable在单元格编辑后转到下一行?原因是我的程序使用ListSelectionListener在单元格选择上同步了其他一些小部件,并且我不想在编辑当前单元格后选择下一行。Enter的默认绑定是名为selectNext…
    2025-04-161
  • Weblogic 12c 部署

    Weblogic12cdeploy我正在尝试将我的应用程序从Tomcat迁移到Weblogic12.2.1.3.0。我能够毫无错误地部署应用程序,但我遇到了与持久性提供程序相关的运行时错误。这是堆栈跟踪:javax.validation.ValidationException:CalltoTraversableResolver.isReachable()threwanexceptionatorg.…
    2025-04-161
  • Resteasy Content-Type 默认值

    ResteasyContent-Typedefaults我正在使用Resteasy编写一个可以返回JSON和XML的应用程序,但可以选择默认为XML。这是我的方法:@GET@Path("/content")@Produces({MediaType.APPLICATION_XML,MediaType.APPLICATION_JSON})publicStringcontentListRequestXm…
    2025-04-161
  • 代码不会停止运行,在 Java 中

    thecodedoesn'tstoprunning,inJava我正在用Java解决项目Euler中的问题10,即"Thesumoftheprimesbelow10is2+3+5+7=17.Findthesumofalltheprimesbelowtwomillion."我的代码是packageprojecteuler_1;importjava.math.BigInteger;importjava…
    2025-04-161
  • Out of memory java heap space

    Outofmemoryjavaheapspace我正在尝试将大量文件从服务器发送到多个客户端。当我尝试发送大小为700mb的文件时,它显示了"OutOfMemoryjavaheapspace"错误。我正在使用Netbeans7.1.2版本。我还在属性中尝试了VMoption。但仍然发生同样的错误。我认为阅读整个文件存在一些问题。下面的代码最多可用于300mb。请给我一些建议。提前致谢publicc…
    2025-04-161
  • Log4j 记录到共享日志文件

    Log4jLoggingtoaSharedLogFile有没有办法将log4j日志记录事件写入也被其他应用程序写入的日志文件。其他应用程序可以是非Java应用程序。有什么缺点?锁定问题?格式化?Log4j有一个SocketAppender,它将向服务发送事件,您可以自己实现或使用与Log4j捆绑的简单实现。它还支持syslogd和Windows事件日志,这对于尝试将日志输出与来自非Java应用程序…
    2025-04-161