diff --git a/src/Composer/Command/DumpAutoloadCommand.php b/src/Composer/Command/DumpAutoloadCommand.php
index 6e6b56a5a..2e3181a27 100644
--- a/src/Composer/Command/DumpAutoloadCommand.php
+++ b/src/Composer/Command/DumpAutoloadCommand.php
@@ -12,6 +12,7 @@
namespace Composer\Command;
+use Composer\Package\AliasPackage;
use Composer\Plugin\CommandEvent;
use Composer\Plugin\PluginEvents;
use Symfony\Component\Console\Input\InputInterface;
@@ -67,6 +68,17 @@ EOT
$package = $composer->getPackage();
$config = $composer->getConfig();
+ $missingDependencies = false;
+ foreach ($localRepo->getCanonicalPackages() as $localPkg) {
+ $installPath = $installationManager->getInstallPath($localPkg);
+ if ($installPath !== null && file_exists($installPath) === false) {
+ $missingDependencies = true;
+ $this->getIO()->write('Not all dependencies are installed. Make sure to run a "composer install" to install missing dependencies');
+
+ break;
+ }
+ }
+
$optimize = $input->getOption('optimize') || $config->get('optimize-autoloader');
$authoritative = $input->getOption('classmap-authoritative') || $config->get('classmap-authoritative');
$apcuPrefix = $input->getOption('apcu-prefix');
@@ -124,7 +136,7 @@ EOT
$this->getIO()->write('Generated autoload files');
}
- if ($input->getOption('strict-psr') && count($classMap->getPsrViolations()) > 0) {
+ if ($missingDependencies || ($input->getOption('strict-psr') && count($classMap->getPsrViolations()) > 0)) {
return 1;
}