Решено после того, как я заключил URL в одинарные кавычки
sh (script : "wget '${artifact_url}' -O earfile.ear")
Как и в любой модели плагинов / расширений, вы должны поместить свои «контракты» (интерфейсы, которые должен реализовывать автор плагина) в сборку, отдельную от вашего приложения.
Таким образом, вы можете сделать эту сборку доступной для авторов плагинов, не предоставляя им всего приложения - это полезно, если это коммерческое приложение, для которого необходимо отдельно лицензировать.
MEF Preview 5 предоставляет возможность экспорта интерфейса (т.е. добавить атрибут [Export] к интерфейсу), чтобы любой разработчик этого интерфейса автоматически экспортировался. Это означает, что авторам плагинов даже не нужно знать о MEF - они просто реализуют ваш интерфейс и автоматически становятся расширением MEF.
Изначально MEF собирался реализовать утиную типизацию, что означало бы, что вам не нужна общая сборка, но, очевидно, это оказалось слишком сложно.
Я объединяю их всех в общую. сборки вместе с некоторыми полезными абстрактными базовыми классами, которые можно использовать для реализации интерфейсов.
У меня тоже был такой же вопрос, и я хотел увидеть пример, где контракты определены в одном проекте, несколько реализаций определены в других проектах и в отдельных потребительских проектах, которые используют контракт и имеют папку расширений, где DLL-файлы реализации могут быть просто скопированы и доступны для потребительского приложения без каких-либо изменений кода. Поэтому я попытался написать простое приложение типа Hello World и разместил его в своем блоге. Надеюсь, вы найдете это полезным. Я также опубликовал исходный код (на C #).
http://ppsinfo.blogspot.com/2009/11/managed-extensibility-framework-mef.html
На самом деле в .NET 4.0 появилась новая возможность, называемая эквивалентностью типов, которая может это сделать. С помощью этой возможности вы можете иметь два различных интерфейса в различных контрактных сборках, которые говорят CLR, что они одинаковые. Так как это низкоуровневый интерфейс, MEF может с ним отлично работать.
Несколько предостережений:
Подробнее об этом можно прочитать здесь: http://msdn.microsoft.com/en-us/library/dd997297(VS.100).aspx. В документации будет сказано, что это для COM, но вы можете использовать его и для управляемого кода.
.